Compter les éléments avec jQuery

112

Existe-t-il un moyen de compter le nombre d'éléments sur la page avec une classe particulière?

Père Noël
la source

Réponses:

229
$('.someclass').length

Vous pouvez également utiliser:

$('.someclass').size()

qui est fonctionnellement équivalent, mais le premier est préféré . En fait, ce dernier est désormais obsolète et ne devrait plus être utilisé dans aucun nouveau développement.

David
la source
Je ne le trouve pas, mais j'ai lu récemment sur Meta "Comment faites-vous un vote favorable?" , et il y avait une citation de Jeff Atwood "Chaque fois que je recherche un problème et trouve la réponse." Ma situation exacte.
brasofilo
13
Notez que cette .size()méthode est obsolète.
Moshe Simantov
1
avec la version 3.1.1, la longueur renvoie undefined
Giovanni Bitliner
1
@TylerLazenby: Vous en êtes sûr? jsfiddle.net/xpvt214o/154885 Avez-vous un exemple pour démontrer votre réclamation?
David
1
@TylerLazenby: Le code de votre question n'utilise pas jQuery. Vous obtenez juste la longueur d'une chaîne littérale.
David
8

Oui il y a.

$('.MyClass').size()
gddc
la source
1
$ ('. MyClass'). Length est légèrement meilleure, car il n'y a pas de surcharge d'appel de méthode. Sinon, les deux sont exactement les mêmes.
EvilAmarant7x
8

Je crois que cela fonctionne:

$(".MyClass").length 
IroniqueMuffin
la source
7

essaye ça:

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

Celui-ci ne fonctionne pas pour moi. Je préfère utiliser ceci:

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

Je ne sais pas vraiment pourquoi, mais le second ne fonctionne que pour moi. Quelque part, aucune taille ne fonctionne.

Embrasser Koppány
la source
3

Le meilleur moyen serait d'utiliser .each ()

var num = 0;

$('.className').each(function(){
    num++;
});
Panomosh
la source
2
"La méthode .each () est conçue pour rendre les constructions de boucle DOM concises et moins sujettes aux erreurs"
Panomosh
2

utiliser la .size()méthode ou l' .lengthattribut

neebz
la source