Contar elementos com jQuery

112

Existe uma maneira de contar quantos elementos na página com uma classe específica?

papai noel
fonte

Respostas:

229
$('.someclass').length

Você também pode usar:

$('.someclass').size()

que é funcionalmente equivalente, mas o primeiro é preferido . Na verdade, o último agora está obsoleto e não deve ser usado em nenhum novo desenvolvimento.

David
fonte
Não estou localizando, mas li no Meta recentemente "Como você vota positivamente?" , e havia uma citação de Jeff Atwood "Sempre que pesquiso um problema e encontro a resposta." Minha situação exata.
brasofilo
13
Observe que o .size()método está obsoleto.
Moshe Simantov
1
com a versão 3.1.1, length retorna undefined
Giovanni Bitliner
1
@TylerLazenby: Tem certeza disso? jsfiddle.net/xpvt214o/154885 Você tem um exemplo para demonstrar sua reivindicação?
David de
1
@TylerLazenby: O código em sua pergunta não está usando jQuery. Você está apenas obtendo o comprimento de um literal de string.
David de
8

Sim existe.

$('.MyClass').size()
gddc
fonte
1
$ ('. MyClass'). Length é um pouco melhor, pois não há sobrecarga de chamada de método. Caso contrário, os dois são exatamente iguais.
EvilAmarant7x
8

Eu acredito que isso funciona:

$(".MyClass").length 
IronicMuffin
fonte
7

tente isto:

var count_element = $('.element').length
Naftali também conhecido como Neal
fonte
4
$('.class').length

Este não funciona para mim. Prefiro usar este:

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

Eu realmente não sei o motivo, mas o segundo só funciona para mim. De alguma forma, qualquer um dos tamanhos não funciona.

Beijar koppány
fonte
3

A melhor maneira seria usar .each ()

var num = 0;

$('.className').each(function(){
    num++;
});
Panomosh
fonte
2
"O método .each () é projetado para tornar as construções de loop do DOM concisas e menos sujeitas a erros"
Panomosh
2

use o .size()método ou .lengthatributo

Neebz
fonte