2011-09-13 22 views
44

Considerando algo como esto;jQuery cuenta el número de divs con una cierta clase?

<div class="wrapper"> 
    <div class="item"></div> 
    <div class="item"></div> 
    <div class="item"></div> 
    <div class="item"></div> 
    <div class="item"></div> 
</div> 

¿Cómo me, usando jQuery (JS o simple, si es más corto - pero lo dudo), cuente el número de divs con la clase "elemento"? En este ejemplo, la función debe devolver 5, ya que hay 5 divs con la clase de elemento.

Gracias!

+4

intento $ ("div.item") longitud o $ ("div.item") size() –

+0

esto le ayudará a:. [Link] [1] [1] : http://stackoverflow.com/questions/2727303/jquery-counting-elements-by-class-what-is-the-best-way-to-implement-this – Darvex

+0

size() está en desuso se adhieren a la longitud – lft93ryt

Respuesta

94

Puede utilizar la propiedad jQuery .length

var numItems = $('.item').length; 
+7

.. . Creo que debe ser $ ('div.item') para contar los divs con esa clase (y no incluir ningún otro tipo de elemento con la clase .item). – jjmontes

+0

¡Gracias, esto es lo que necesitaba! ¡Aceptaré tu respuesta tan pronto como se termine el límite de tiempo! –

+2

@jjmontes eso es verdad. Por supuesto, puede usar cualquier selector ... pero depende de qué tan específico desee el OP. Por ejemplo '$ ('div.wrapper div.item')' estaría aún más cerca. –

17

Para un mejor rendimiento se debe utilizar:

var numItems = $('div.item').length; 

Ya que sólo buscará los elementos en divDOM y será rápido.

Sugerencia:size() usando en lugar de length propiedad significa un paso adicional en el proceso desde SIZE() utiliza length propiedad en la definición de la función y devuelve el resultado.

+0

Me interesaría saber cuál sería la diferencia de tiempo/rendimiento en el uso de 'div.item' en lugar de' .item', por supuesto, esto dependería de cuán grande sea el documento pero, en general, tengo curiosidad saber si hace una gran diferencia – haakym

2

He creado esta función js usando la función jQuery tamaño http://api.jquery.com/size/

function classCount(name){ 
    alert($('.'+name).size()) 
} 

Alerta a cabo el número de veces que el nombre de la clase se da en el documento.

8

Puede usar la propiedad jQuery.children.

var numItems = $('.wrapper').children('div').length; 

para obtener más información, consulte http://api.jquery.com/

1

Y la respuesta la llanura js si alguien podría estar interesado;

var count = document.getElementByClassName("item"); 

Cheers. .

Cuestiones relacionadas