Contar elementos com jQuery


112

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

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.


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()

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



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.


3

A melhor maneira seria usar .each ()

var num = 0;

$('.className').each(function(){
    num++;
});

2
"O método .each () é projetado para tornar as construções de loop do DOM concisas e menos sujeitas a erros"
Panomosh

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.