2010-08-15 19 views
51

Je suis d'essayer ce pour obtenir le id de chaque élément dans un class mais c'est alertant chaque nom de la classe séparément, donc pour class="test" il est alerte: t, e, s, t ... Tous les conseils sur la façon d'obtenir le chaque élément id qui fait partie du class est apprécié, car je n'arrive pas à comprendre cela .. Merci.jQuery, obtenez l'ID de chaque élément d'une classe en utilisant .each?

$.each('test', function() { 
    alert(this) 
}); 

Répondre

120

Essayez ce, en remplaçant .myClassName par le nom réel de la classe (mais gardez la période au début).

$('.myClassName').each(function() { 
    alert(this.id); 
}); 

Donc, si la classe est "test", vous feriez $('.test').each(func....

Ceci est la forme spécifique de .each() qui itère sur un objet jQuery.

Le formulaire que vous utilises itère sur tous les types de collection. Donc, vous étiez essentiellement l'itération sur un tableau de caractères t,e,s,t.

utilisant que forme de $.each(), vous devez le faire comme ceci:

$.each($('.myClassName'), function() { 
    alert(this.id); 
}); 

... qui aura le même résultat que l'exemple ci-dessus.

+1

vous .. fonctionne très bien maintenant – Rick

+0

@Rick - Vous êtes les bienvenus. Content que cela fonctionne. : o) – user113716

22

La réponse de patrick dw est juste. Pour les coups de pied et les fous rires, je pensais que je posterais un moyen simple de retourner un tableau de tous les ID. merci

var arrayOfIds = $.map($(".myClassName"), function(n, i){ 
    return n.id; 
}); 
alert(arrayOfIds); 
+0

En effet '$ .map()' est très agréable si un tableau est désiré. Bien que je puisse exprimer mon parti pris personnel, je ferais 'n.id' au lieu de créer un nouvel objet jQuery pour chaque itération, car c'est beaucoup plus efficace. Je pensais juste que je le mentionnerais. : o) – user113716

+0

vous avez raison Patrick. pas besoin de l'extra $(). Je l'ai édité. – jessegavin