关于childNodes的length的问题

<ul id="ul1">

  <li></li>

  <li></li>

</ul>

 

这个时候如果 document.getElementById('ul1').childNodes.length;  得到的结果是5,而不是2

因为它把之间的换行也当成是node

严格来说这也是正确的,节点分为元素节点(标签)和文本节点(纯文本),换行和空格实际上是文本节点。

 

这个问题在Chrome以及高版本IE会出现,反而在IE7不出现,IE7对DOM的支持比较差,反而避免了这个问题。

 

要解决这个问题,需要用的nodeType区分。nodeType是1表示元素节点,也就是我们想要的,nodeType是3表示文本节点,也就是这里不想要的。

 

 

posted @ 2014-05-04 20:22  喵尾景虎  阅读(953)  评论(0编辑  收藏  举报