2010-08-23 18 views

risposta

167

È possibile utilizzare .length, in questo modo:

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

.length dice quante partite il selettore trovato, quindi questo conta quanti <li> sotto <ul> elementi si deve ... se ci sono sotto-figli, l'uso "ul > li" invece di ottenere solo diretti bambini. Se nella tua pagina ci sono altri elementi <ul>, basta cambiare il selettore in modo che corrisponda solo al suo, ad esempio se ha un ID che useresti "#myListID > li".

In altre situazioni in cui non si conosce il tipo di bambino, è possibile utilizzare il selettore * (jolly), o .children(), in questo modo:

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

o:

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

Che cosa succede se, non è noto che il bambino è "li", e potrebbe essere qualsiasi cosa? – Starx

+5

@Starx: '$ (" # parent "). Children(). Length' – alecananian

+1

@AlecAnanian, No, so come. Voglio dire, speravo che anche Nick lo aggiungesse alla sua risposta. – Starx

1

Try per utilizzare:

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

Cosa succede se si utilizza questo per determinare il selettore di corrente per trovare i suoi figli quindi questo vale: <ol> poi c'è <li> s sotto come scrivere un selettore var count = $(this+"> li").length; abituato lavoro ..

+0

se l'ol ha una classe puoi scrivere '$ (" ol.class> li "). Length' – Qwerty

4

Non è necessario jQuery per questo. Puoi utilizzare JavaScript .childNodes.length.

Assicurati di sottrarre 1 se non vuoi includere il nodo di testo predefinito (che è vuoto di default). Così, si utilizza la seguente:.

var count = elem.childNodes.length - 1; 
Problemi correlati