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;