Contar elementos con jQuery

112

¿Hay alguna forma de contar cuántos elementos en la página con una clase en particular?

Papa Noel
fuente

Respuestas:

229
$('.someclass').length

También puedes usar:

$('.someclass').size()

que es funcionalmente equivalente, pero se prefiere el primero . De hecho, este último ahora está en desuso y no debería usarse en ningún desarrollo nuevo.

David
fuente
No lo estoy localizando, pero leí en Meta recientemente "¿Cómo votas a favor?" , y había una cita de Jeff Atwood "Siempre que busco un problema y encuentro la respuesta". Mi situación exacta.
brasofilo
13
Tenga en cuenta que el .size()método está obsoleto.
Moshe Simantov
1
con la versión 3.1.1, la longitud devuelve indefinida
Giovanni Bitliner
1
@TylerLazenby: ¿Estás seguro de eso? jsfiddle.net/xpvt214o/154885 ¿Tiene un ejemplo para demostrar su afirmación?
David
1
@TylerLazenby: El código de su pregunta no usa jQuery. Solo obtienes la longitud de una cadena literal.
David
8

Sí hay.

$('.MyClass').size()
gddc
fuente
1
$ ('. MyClass'). Length es ligeramente mejor, ya que no hay sobrecarga de llamadas a métodos. De lo contrario, los dos son exactamente iguales.
EvilAmarant7x
8

Creo que esto funciona:

$(".MyClass").length 
IrónicoMuffin
fuente
7

prueba esto:

var count_element = $('.element').length
Naftali alias Neal
fuente
4
$('.class').length

Este no me funciona. Prefiero usar esto:

$('.class').children().length

Realmente no sé la razón, pero el segundo funciona solo para mí. De alguna manera, ninguno de los tamaños funciona.

Beso Koppány
fuente
3

La mejor manera sería usar .each ()

var num = 0;

$('.className').each(function(){
    num++;
});
Panomosh
fuente
2
"El método .each () está diseñado para hacer construcciones de bucle DOM concisas y menos propensas a errores"
Panomosh
2

usar el .size()método o .lengthatributo

neebz
fuente