2010-11-27 9 views
261

jQuery elementos de recuento niño

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

que quieren contar el número total de elementos en <li><div id="selected"></div>. ¿Cómo es posible usar jQuery's .children([selector])?

+0

http://stackoverflow.com/questions/250688/count- immediate-child-div-elements-using-jquery – onder

Respuesta

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

Probablemente también se puede omitir li en el selector de los niños.

Ver .length.

10
$('#selected ul').children().length; 

o incluso mejor

$('#selected li').length; 
17

más rápido uno:

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

Este no es el más rápido, de hecho lo desaceleró al agregar 'div' allí :) –

+2

pruébelo y compare el tiempo –

+1

Realmente depende de qué ceja ser que usas En muchos navegadores modernos, agregar el elemento usa findByElement antes de buscar por id o clase, que es más lento. Pronto, este será un punto discutible de cualquier manera, porque todas las búsquedas DOM se realizarán usando una función nativa. En cualquier caso, un simple getElementById ('selected') o $ ('# selected') sería más rápido en este punto. –

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

o:

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

Solo una nota .size() ha quedado en desuso en favor de .length –

11

Usted puede utilizar JavaScr IPT (no se necesita jQuery)

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

es simplemente posible con childElementCount en javascript 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>

Cuestiones relacionadas