Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script type="text/javascript">
- var doc;
- var sections = new Array("h1", "h2", "h3");
- window.onload = makeTOC;
- function countElements() {
- var nodeDoc = document.getElementById("doc");
- alert(nodeDoc.childNodes.length);
- }
- function countElements2() {
- var count = 0;
- var myElement = document.getElementById("doc");
- var node = myElement.firstChild;
- for (var i = node; i != null; i = i.nextSibling) {
- //alert(i.nodeName + i.nodeValue);
- count+=1;
- }
- alert(count);
- }
- function makeTOC() {
- doc = document.getElementById("doc");
- var TOC = document.getElementById("toc");
- TOC.innerHTML = "<h1>Table of Contents</h1>";
- var TOCList = document.createElement("ol");
- TOC.appendChild(TOCList);
- createList(doc, TOCList);
- }
- function levelNum(node) {
- for (var i = 0; i < sections.length; i++)
- if (node.nodeName == sections[i].toUpperCase())
- return i;
- return -1;
- }
- function createList(object, list) {
- var prevLevel = 0;
- var headNum = 0;
- for (var n = object.firstChild; n != null; n = n.nextSibling) {
- var nodeLevel = levelNum(n);
- if (nodeLevel != -1) {
- headNum += 1;
- if (n.id == "")
- n.id = "head" + headNum;
- var listItem = document.createElement("li");
- var linkedItem = document.createElement("a");
- linkedItem.innerHTML = n.innerHTML;
- linkedItem.href = "#" + n.id;
- listItem.appendChild(linkedItem);
- //append to appropriate level
- if (nodeLevel == prevLevel)
- list.appendChild(listItem);
- else if (nodeLevel > prevLevel) {
- var nestedList = document.createElement("ol");
- nestedList.appendChild(listItem);
- list.lastChild.appendChild(nestedList);
- list = nestedList;
- prevLevel = nodeLevel;
- }
- else if (nodeLevel < prevLevel) {
- var levelUp = prevLevel - nodeLevel;
- for (var i = 1; i <= levelUp; i++)
- list = list.parentNode.parentNode;
- list.appendChild(listItem);
- prevLevel = nodeLevel;
- }
- }
- }
- }
- </script>
Add Comment
Please, Sign In to add comment