本文介绍了JavaScript DOM childNodes.length也返回文本节点的数量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在JavaScript DOM中,childNodes.length返回元素和文本节点的数量。有什么方法可以只计算仅有元素的子节点的数量?例如, childNodes.length div#posts 将返回6,当我预期2时:

  < div id =posts> 
<! - 一些评论 - >
<! - 另一条评论 - >
< div>元素节点< / div>
<! - 另一条评论 - >
< span>元素节点< / span>
文本节点
< / div>


解决方案

不直接。文本节点(包括注释等)是子节点。



最好的办法是遍历childNodes数组,并只计算那些节点 nodeType == Node.ELEMENT_NODE 。 (并写一个函数来做。)


In JavaScript DOM, childNodes.length returns the number of both element and text nodes. Is there any way to count only the number of element-only child nodes?

For example, childNodes.length of div#posts will return 6, when I expected 2:

<div id="posts">
    <!-- some comment -->
    <!-- another comment -->
    <div>an element node</div>
    <!-- another comment -->
    <span>an element node</span>
    a text node
</div>
解决方案

Not directly. Text nodes (including comments and so on) are child nodes.

Your best bet is to iterate over the childNodes array and count up only those nodes with nodeType == Node.ELEMENT_NODE. (And write a function to do so.)

这篇关于JavaScript DOM childNodes.length也返回文本节点的数量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-10 22:48