;(function () { var wrapper = document.getElementById('wrapper') var els = Array.prototype.slice.call(wrapper.getElementsByTagName('*'), 0) .filter(function (el) { return el.parentNode === wrapper && el.tagName.match(/H[1-6]/) && el.id }) var l = 2 var toc = document.createElement('ul') toc.innerHTML = els.map(function (el) { var i = el.tagName.charAt(1) var out = '' while (i > l) { out += '' l-- } out += '
  • ' + (el.innerText || el.text || el.innerHTML) + '' return out }).join('\n') toc.id = 'toc' document.body.appendChild(toc) })()