Guest User

Untitled

a guest
Jan 24th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. <script type="text/javascript">
  2. var doc;
  3. var sections = new Array("h1", "h2", "h3");
  4.  
  5. window.onload = makeTOC;
  6.  
  7. function countElements() {
  8. var nodeDoc = document.getElementById("doc");
  9. alert(nodeDoc.childNodes.length);
  10. }
  11.  
  12. function countElements2() {
  13. var count = 0;
  14. var myElement = document.getElementById("doc");
  15. var node = myElement.firstChild;
  16. for (var i = node; i != null; i = i.nextSibling) {
  17. //alert(i.nodeName + i.nodeValue);
  18. count+=1;
  19. }
  20. alert(count);
  21. }
  22.  
  23. function makeTOC() {
  24. doc = document.getElementById("doc");
  25. var TOC = document.getElementById("toc");
  26. TOC.innerHTML = "<h1>Table of Contents</h1>";
  27. var TOCList = document.createElement("ol");
  28. TOC.appendChild(TOCList);
  29. createList(doc, TOCList);
  30. }
  31.  
  32. function levelNum(node) {
  33. for (var i = 0; i < sections.length; i++)
  34. if (node.nodeName == sections[i].toUpperCase())
  35. return i;
  36. return -1;
  37. }
  38.  
  39. function createList(object, list) {
  40. var prevLevel = 0;
  41. var headNum = 0;
  42. for (var n = object.firstChild; n != null; n = n.nextSibling) {
  43. var nodeLevel = levelNum(n);
  44. if (nodeLevel != -1) {
  45. headNum += 1;
  46. if (n.id == "")
  47. n.id = "head" + headNum;
  48. var listItem = document.createElement("li");
  49. var linkedItem = document.createElement("a");
  50. linkedItem.innerHTML = n.innerHTML;
  51. linkedItem.href = "#" + n.id;
  52. listItem.appendChild(linkedItem);
  53. //append to appropriate level
  54. if (nodeLevel == prevLevel)
  55. list.appendChild(listItem);
  56. else if (nodeLevel > prevLevel) {
  57. var nestedList = document.createElement("ol");
  58. nestedList.appendChild(listItem);
  59. list.lastChild.appendChild(nestedList);
  60. list = nestedList;
  61. prevLevel = nodeLevel;
  62. }
  63. else if (nodeLevel < prevLevel) {
  64. var levelUp = prevLevel - nodeLevel;
  65. for (var i = 1; i <= levelUp; i++)
  66. list = list.parentNode.parentNode;
  67. list.appendChild(listItem);
  68. prevLevel = nodeLevel;
  69. }
  70. }
  71. }
  72. }
  73. </script>
Add Comment
Please, Sign In to add comment