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.)