The 12 different HTML DOM node types
Source: http://www.w3schools.com/jsref/prop_node_nodetype.asp
Traversing The DOM
Traversing the Child Nodes Under the <body> Tag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <!DOCTYPE HTML> <html> <body> <div> Allowed readers:</div> <ul> <li>Bob</li> <li>Alice</li> </ul> <!-- a comment node --> <script> function go() { var childNodes = document.body.childNodes for(var i=0; i<childNodes.length; i++) { alert(childNodes[i]) } } </script> <!-- a comment node --> <button onclick="go()" style="width:100px"> Go!</button> <!-- a comment node --> </body> </html> |
Result
In the example document above, document.body.childNodes[1] is DIV in all browsers except IE<9. In older IEs, there are no whitespaces, so document.body.childNodes[1] is UL.
Note, there is a text object immediately after the <body> tag and another one immediately before the </body> tag.
--------------------------------------------------------------------------------------------------------------------------
Traversing the Child Nodes Under Specific id
traverse.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <!DOCTYPE html> <html> <head> <script src="jscode.js"> </script> <link type="text/css" rel="stylesheet" href="stylesheet1.css"> </head> <body> <div id="main"> <p> 1.After defeating the Romans at the Battle of Lake Trasimene, Hannibal now moved his forces down south. </p> <!-- My personal comment goes here.. --> <p> 2.The Romans were then forced to retreat to Rome. It was a total defeat. </p> <p> 3.After the horrific defeat at the Battle of Cannae, the Romans reinstituted Fabius' avoidance strategy. </p> <p> 4.The avoidance strategy worked but it took forever. It took almost two long decades to drive Hannibal out of Italy. </p> <!-- My personal comment goes here.. --> </div> <p id="demo"></p>    <button onclick="myFunction()"> Try It </button> </body> </html> |
stylesheet1.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | body {
background-color: #9c9f84;
margin: 0px;
font-family: Verdana, Georgia, serif;
font-size: 14px;
}
#main {
background-color: #e5e4d7;
margin-left: 10px;
margin-right: 320px;
margin-top: 10px;
margin-bottom: 10px;
border-radius: 5px;
padding: 20px;
font-size: 110%;
}
|
jscode.js
1 2 3 4 5 6 7 8 9 10 | function myFunction() {
var c = document.getElementById("main").childNodes;
var d = document.getElementById("main");
var txt = "";
var i;
for (i = 0; i < c.length; i++) {
txt = txt + d.childNodes[i] + "<br>";
}
document.getElementById("demo").innerHTML = txt;
}
|
Result
-------------------------------------------------------------------------------------------------------------------------
Sample 2 - Traversing The Children Elements
The code below only traverses the element nodes (text nodes are skipped).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <!DOCTYPE HTML> <html> <body> <div> Allowed readers:</div> <ul> <li>Bob</li> <li>Alice</li> </ul> <!-- a comment node --> <script> function go() { var children = document.body.children for(var i=0; i<children.length; i++) { alert(children[i]) } } </script> <!-- a comment node --> <button onclick="go()" style="width:100px"> Go!</button> <!-- a comment node --> </body> </html> |
Result
References:
Traversing the DOM
http://javascript.info/tutorial/traversing-dom
JavaScript Tutorial for Beginners - 40 - Traversing the DOM
https://youtu.be/T_89UCU8PQU?list=PLr6-GrHUlVf96NLj3PQq-tmEB6woZjwEl
No comments:
Post a Comment