为了账号安全,请及时绑定邮箱和手机立即绑定

输出结果怎么多了一个子节点个数?

<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也计算一次吗?

正在回答

4 回答

3个元素节点+4个换行符 所以是七个

0 回复 有任何疑惑可以回复我~

你肯定有两个div吧。其实你这个循环写的挺乱的,例如:

<div id="1">7个子节点...<div> 空白也算子节点</div></div>

那个getElementByTagName确实会把两个div都算进去。不过你后面那个chi[i]又是完全搞错了想要处理的对象

0 回复 有任何疑惑可以回复我~

我用的是火狐,我预想的输出结果是:子节点个数:7  子节点类型:3

但实际上还多了一个:子节点个数:1

没明白这个

0 回复 有任何疑惑可以回复我~

注意:

1. IE全系列、firefox、chrome、opera、safari兼容问题

2. 节点之间的空白符,在firefox、chrome、opera、safari浏览器是文本节点,所以IE是3,其它浏览器是7

课程左边写的很清楚啊,你可以看看

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

输出结果怎么多了一个子节点个数?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信