Javascript - child node count

Viewed 65438
<ul>
    <li>Array1</li>
    <li>Array2</li>
    <li id="element">Array3</li>
</ul>
<script>
   var temp = document.getElementById('element').parentNode;
   child = temp.childNodes;
   console.log(temp.length);
</script>

I need to get the child node length using element id. My code returns 7 as a result but I have only 3 nodes.

4 Answers

If you want to get a list of all nested DOM nodes, you can use this code snippet:

function getNestedElements(node) {
  const elems = [];
  const children = node.childNodes;

  for (let i = 0; i < children.length; i++) {
    if (children[i].nodeType === document.ELEMENT_NODE) {
      elems.push(children[i], ...getNestedElements(children[i]));
    }
  }
  return elems;
}

This is a modified version of @julien-ch answer

Related