jQuery cuenta elementos secundarios


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>

Quiero contar la cantidad total de <li>elementos en <div id="selected"></div>. ¿Cómo es eso posible usando jQuery's .children([selector])?



1
En JS puro, la respuesta de @ Mo. es un poco baja todavía, pero useelement.childelementCount
Charles L.

Respuestas:



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

o:

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

10
Solo una nota .size () ha quedado en desuso a favor de .length
Eric Kigathi

18

el más rápido

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

2
Este no es el más rápido, de hecho lo desaceleró agregando divallí :)
Nick Craver

1
Realmente depende del navegador que uses. En muchos navegadores modernos, agregar el elemento usa findByElement antes de buscar por id o clase, que es más lento. Sin embargo, pronto será un punto discutible de cualquier manera, porque todas las búsquedas DOM se realizarán utilizando una función nativa. En cualquier caso, un simple getElementById ('selected') o $ ('# selected') sería más rápido en este punto.
Alex K

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

Probablemente también podría omitir lien el selector de niños.

Ver .length.




4

Es simplemente posible 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>


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.