<script type="text/javascript">
var lists=document.getElementsByTagName("div");
for(var i=0;i<lists.length;i++){
var chi=lists[i].childNodes;
document.write("子节点个数:"+chi.length+"<br>");
document.write("子节点类型:"+chi[i].nodeType+"<br>");
}
输出结果:
子节点个数:7
子节点类型:3
子节点个数:1
是把里面的div也计算一次吗?
3个元素节点+4个换行符 所以是七个
你肯定有两个div吧。其实你这个循环写的挺乱的,例如:
<div id="1">7个子节点...<div> 空白也算子节点</div></div>
那个getElementByTagName确实会把两个div都算进去。不过你后面那个chi[i]又是完全搞错了想要处理的对象
我用的是火狐,我预想的输出结果是:子节点个数:7 子节点类型:3
但实际上还多了一个:子节点个数:1
没明白这个
注意:
1. IE全系列、firefox、chrome、opera、safari兼容问题
2. 节点之间的空白符,在firefox、chrome、opera、safari浏览器是文本节点,所以IE是3,其它浏览器是7
课程左边写的很清楚啊,你可以看看