We want to make this open-source project available for people all around the world.

Help to translate the content of this tutorial to your language!

back to the lesson

Count descendants

importance: 5

There’s a tree structured as nested ul/li.

Write the code that for each <li> shows:

  1. What’s the text inside it (without the subtree)
  2. The number of nested <li> – all descendants, including the deeply nested ones.

Demo in new window

Open a sandbox for the task.

Let’s make a loop over <li>:

for (let li of document.querySelectorAll('li')) { ... }

In the loop we need to get the text inside every li.

We can read the text from the first child node of li, that is the text node:

for (let li of document.querySelectorAll('li')) { let title = li.firstChild.data; // title is the text in <li> before any other nodes }

Then we can get the number of descendants as li.getElementsByTagName('li').length.

Open the solution in a sandbox.