jQuery count éléments enfants

324

<div id="selected">
  <ul>
    <li>29</li>
    <li>16</li>
    <li>5</li>
    <li>8</li>
    <li>10</li>
    <li>7</li>
  </ul>
</div>

Je veux compter le nombre total d' <li>éléments dans <div id="selected"></div>. Comment est-ce possible en utilisant jQuery .children([selector])?

gautamlakum
la source
1
En JS pur, la réponse de @ Mo. est encore assez faible, mais utilisezelement.childelementCount
Charles L.

Réponses:

30
$("#selected > ul > li").size()

ou:

$("#selected > ul > li").length
bcosca
la source
10
Juste une note .size () a été déprécié au profit de .length
Eric Kigathi
18

le plus rapide:

$("div#selected ul li").length
Ali Tarhini
la source
2
Ce n'est pas le plus rapide, en fait vous avez ralenti en ajoutant divlà-bas :)
Nick Craver
1
Cela dépend vraiment du navigateur que vous utilisez. Dans de nombreux navigateurs modernes, l'ajout de l'élément utilise findByElement avant de rechercher par id ou classe, ce qui est plus lent. Bientôt, ce sera un point discutable dans les deux cas, car toutes les recherches DOM seront effectuées à l'aide d'une fonction native. Dans tous les cas, un simple getElementById ('sélectionné') ou $ ('# sélectionné') serait plus rapide à ce stade.
Alex K
14
var length = $('#selected ul').children('li').length
// or the same:
var length = $('#selected ul > li').length

Vous pourriez probablement aussi omettre lidans le sélecteur pour enfants.

Tu vois .length.

Felix Kling
la source
13

Vous pouvez utiliser JavaScript (pas besoin de jQuery)

document.querySelectorAll('#selected li').length;
Đặng Văn Thanh
la source
12
$('#selected ul').children().length;

ou encore mieux

 $('#selected li').length;
Martin Algesten
la source
4

C'est tout simplement possible avec childElementCountdu javascript pur

var countItems = document.getElementsByTagName("ul")[0].childElementCount;
console.log(countItems);
<div id="selected">
  <ul>
    <li>29</li>
    <li>16</li>
    <li>5</li>
    <li>8</li>
    <li>10</li>
    <li>7</li>
  </ul>
</div>

Mo.
la source
1

pur js

selected.children[0].children.length;

Kamil Kiełczewski
la source