代码:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ChildNodes</title>
</head>
<body>
<div>
javascript
<p>javascript</p>
<div>jQuery</div>
<h5>PHP</h5>
</div>
<script type="text/javascript">
var div_child=document.getElementsByTagName("div")[0].childNodes;
for(var i=0;i<div_child.length;i++){
document.write("第"+(i+1)+"个子节点的类型:"+div_child[i].nodeType+"<br>");
}
</script>
</body>
</html>
结果:
第1个子节点的类型:3
第2个子节点的类型:1
第3个子节点的类型:3
第4个子节点的类型:1
第5个子节点的类型:3
第6个子节点的类型:1
第7个子节点的类型:3
在<div>与第一个标签之间的内容算是第一个节点(包括空白和文本),所以<div>之后的所有空白和JavaScript以及之后的回车空白都算一个节点。即
<div>之后一个“空白+JavaScript+空白”一个节点。
接着<p>javascript</p>一个节点,然后空白节点。
<div>jQuery</div>一个元素节点,然后空白节点。
<h5>PHP</h5>一个元素节点,然后空白节点。
总共7个。
*若把第一个文本内容JavaScript改成<p>JavaScript</p>则一共会有9个节点。即
<div>之后一个空白节点,
<p>JavaScript</p>一个元素节点,后面一个空白节点。
接着<p>javascript</p>一个节点,然后空白节点。
<div>jQuery</div>一个元素节点,然后空白节点。
<h5>PHP</h5>一个元素节点,然后空白节点。
总共9个。
<div>
javascript 这是第1个节点nodeType为3是#text类型
<p>javascript</p> <p>javascript</p>这是第2个节点nodeType为1是元素类型
<p>和<div>两个标签之间虽然是空文本 但也算一个子节点 因为这里也可以插入文本 这是第3个节点nodeType为3是元素类型 , 在下面的<div>和<h5>之间也有一个空文本子节点 ,<h5>和</div> 之间也有
<div>jQuery</div>
<h5>PHP</h5>
</div>