How can I count the number of children?

I have a list

<ul>
  <li>
  <li>
  <li>
  ...
</ul>

I need jQuery to count the number of items in my list.


Solution 1:

You can use .length, like this:

var count = $("ul li").length;

.length tells how many matches the selector found, so this counts how many <li> under <ul> elements you have...if there are sub-children, use "ul > li" instead to get only direct children. If you have other <ul> elements in your page, just change the selector to match only his one, for example if it has an ID you'd use "#myListID > li".

In other situations where you don't know the child type, you can use the * (wildcard) selector, or .children(), like this:

var count = $(".parentSelector > *").length;

or:

var count = $(".parentSelector").children().length;

Solution 2:

You don't need jQuery for this. You can use JavaScript's .childNodes.length.

Just make sure to subtract 1 if you don't want to include the default text node (which is empty by default). Thus, you'd use the following:

var count = elem.childNodes.length - 1;

Solution 3:

Try to get using:

var count = $("ul > li").size();
alert(count);

Solution 4:

You can use Element.childElementCount

ref: https://developer.mozilla.org/en-US/docs/Web/API/Element/childElementCount


let count = ThatParentElement.childElementCount;