Policz elementy za pomocą jQuery


112

Czy istnieje sposób, aby policzyć, ile elementów na stronie z określoną klasą?

Odpowiedzi:


229
$('.someclass').length

Możesz również użyć:

$('.someclass').size()

który jest funkcjonalnie równoważny, ale ten pierwszy jest preferowany . W rzeczywistości ta ostatnia jest obecnie przestarzała i nie powinna być używana w żadnym nowym rozwoju.


Nie lokalizuję go, ale ostatnio przeczytałem w Meta „Jak głosujesz za?” i był cytat Jeffa Atwooda: „Zawsze, gdy szukam problemu i znajduję odpowiedź”. Moja dokładna sytuacja.
brasofilo

13
Zwróć uwagę, że .size()metoda jest przestarzała.
Moshe Simantov

1
w wersji 3.1.1 długość zwraca niezdefiniowaną
Giovanni Bitliner

1
@TylerLazenby: Jesteś tego pewien? jsfiddle.net/xpvt214o/154885 Czy masz przykład, aby zademonstrować swoje roszczenie?
David

1
@TylerLazenby: Kod w Twoim pytaniu nie używa jQuery. Otrzymujesz tylko długość literału ciągu.
David


8

Tak jest.

$('.MyClass').size()

1
Długość $ ('. MyClass'). Jest nieco lepsza, ponieważ nie ma narzutu wywołań metod. W przeciwnym razie te dwa są dokładnie takie same.
EvilAmarant7x



4
$('.class').length

Ten dla mnie nie działa. Wolałbym użyć tego:

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

Naprawdę nie wiem dlaczego, ale ten drugi działa tylko dla mnie. W pewnym sensie żaden rozmiar nie działa.


3

Najlepszym sposobem byłoby użycie .each ()

var num = 0;

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

2
„Metoda .each () została zaprojektowana tak, aby konstrukcje pętli DOM były zwięzłe i mniej podatne na błędy”
Panomosh,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.