jQuery conta gli elementi figlio


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>

Voglio contare il numero totale di <li>elementi in <div id="selected"></div>. Com'è possibile usando jQuery .children([selector])?



1
In puro JS, la risposta di @ Mo. è un po 'bassa, ma usaelement.childelementCount
Charles L.

Risposte:



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

o:

$("#selected > ul > li").length

10
Solo una nota .size () è stata deprecata a favore di .length
Eric Kigathi

18

uno più veloce:

$("div#selected ul li").length

2
Questo non è il più veloce, in effetti l'hai rallentato aggiungendo divlì :)
Nick Craver

1
Dipende molto dal browser che usi. In molti browser moderni, l'aggiunta dell'elemento utilizza findByElement prima di trovare per ID o classe, che è più lento. Presto questo sarà un punto controverso in ogni caso, perché tutte le ricerche DOM verranno eseguite utilizzando una funzione nativa. In ogni caso, un semplice getElementById ('selezionato') o $ ('# selezionato') sarebbe più veloce a questo punto.
Alex K,

14
var length = $('#selected ul').children('li').length
// or the same:
var length = $('#selected ul > li').length

Probabilmente potresti anche ometterti li nel selettore dei bambini.

Vedere .length.


13

Puoi usare JavaScript (non è necessario jQuery)

document.querySelectorAll('#selected li').length;


4

È semplicemente possibile con childElementCountjavascript puro

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>


1

puro js

selected.children[0].children.length;

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.