2010-08-15 10 views
51

Ich versuche dies die id jedes Element in einem class zu bekommen, sondern es ist jeden Namen der Klasse separat alarmiert, so dass für class="test" es alarmiert: t, e, s, t ... Irgendwelche Tipps, wie man Jedes Element id, das Teil der class ist, wird geschätzt, da ich nicht scheinen kann, das herauszufinden. Danke.jQuery, erhalten ID jedes Elements in einer Klasse mit .each?

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

Antwort

120

Try this, .myClassName mit dem tatsächlichen Namen der Klasse zu ersetzen (aber die Zeit am Anfang halten).

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

Also, wenn die Klasse "test", dann würden Sie $('.test').each(func... tun.

Dies ist die spezifische Form von .each(), die über ein jQuery-Objekt iteriert.

Das Formular, das Sie verwenden, iteriert über jeder Art der Auflistung. Sie haben also im Wesentlichen über ein Array von Zeichen t,e,s,t iteriert.

Mit dass Form von $.each(), würden Sie es so tun müssen:

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

... die das gleiche Ergebnis wie das Beispiel oben haben.

+1

danke .. funktioniert jetzt super – Rick

+0

@Rick - Gern geschehen. Froh, dass es funktioniert. : o) – user113716

22

patrick dw 's Antwort ist richtig.

Für Tritte und Kichern dachte ich, ich würde einen einfachen Weg, ein Array aller IDs zurückgeben.

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

In der Tat ist '$ .map()' sehr nett, wenn ein Array gewünscht wird. Obwohl ich meine persönliche Voreingenommenheit ausdrücken könnte, würde ich "n.id" machen, anstatt für jede Iteration ein neues jQuery-Objekt zu erstellen, da es viel effizienter ist. Ich dachte nur, ich würde es erwähnen. : o) – user113716

+0

du hast Recht, Patrick. keine Notwendigkeit für die extra $(). Ich habe es bearbeitet. – jessegavin

Verwandte Themen