116 votes

Comment puis-je compter le nombre d'enfants ?

J'ai une liste

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

J'ai besoin de jQuery pour compter le nombre d'éléments dans ma liste.

1 votes

Oublier jquery document.querySelectorAll('ul li').length

197voto

Nick Craver Points 313913

Vous pouvez utiliser .length comme ceci :

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

.length indique combien de correspondances le sélecteur a trouvé, donc cela compte combien de <li> sous <ul> éléments que vous avez... s'il y a des sous-enfants, utilisez "ul > li" pour obtenir seulement direct enfants. Si vous avez d'autres <ul> dans votre page, changez simplement le sélecteur pour qu'il ne corresponde qu'à son élément, par exemple s'il a un ID, vous utiliserez "#myListID > li" .

Dans d'autres situations où vous ne connaissez pas le type d'enfant, vous pouvez utiliser la fonction * (joker), ou .children() comme ceci :

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

o:

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

1 votes

Et si, on ne sait pas que l'enfant est "li", et qu'il peut être n'importe quoi ?

8 votes

@Starx : $("#parent").children().length

1 votes

@AlecAnanian, Non, je sais comment. Je veux dire que j'espérais que Nick ajouterait ça à sa réponse aussi.

8voto

Zach Saucier Points 11345

Vous n'avez pas besoin de jQuery pour cela. Vous pouvez utiliser la fonction JavaScript .childNodes.length .

Veillez à soustraire 1 si vous ne voulez pas inclure le nœud de texte par défaut (qui est vide par défaut). Ainsi, vous utiliserez ce qui suit :

var count = elem.childNodes.length - 1;

2voto

Essayez d'en prendre :

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

1voto

ashuvssut Points 429

Vous pouvez utiliser Element.childElementCount

réf : https://developer.mozilla.org/en-US/docs/Web/API/Element/childElementCount

let count = ThatParentElement.childElementCount;

0voto

Youssof H. Points 408

Vous pouvez le faire en utilisant jQuery :

Cette méthode obtient une liste de ses enfants puis compte la longueur de cette liste, aussi simple que cela.

$("ul").find("*").length;

La méthode find() parcourt le DOM vers le bas le long des descendants, jusqu'au dernier descendant.

Note : La méthode children() parcourt un seul niveau de l'arbre DOM.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X