关于childNodes的length的问题

时间:2023-03-09 09:13:29
关于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表示文本节点,也就是这里不想要的。