2010-11-05 27 views
25

Ich habe eine div mit der ID ring-preview, es hat eine nicht spezifizierte Anzahl von img Elemente mit der Klasse stone-preview drin.jquery iterieren über Kind Elemente

würde Ich mag über jedes dieser Kind Bilder iterieren und rufen:

$(this).rotate(ring.stones[i].stone_rotation); 

Wo this bezieht sich das img Element und i bezieht sich innerhalb der div auf seine Position.

Wie kann ich das tun?

Antwort

49

Sie suchen nach dem .each() method.
Zum Beispiel:

$('.ring-preview').children('img').each(function(i) { 
    $(this).rotate(ring.stones[i].stone_rotation); 
}); 

Wenn die <img> Elemente nicht direkt Kinder sind, müssen Sie .find statt .children nennen.

8

Sie können eine .each() in diesen Fällen wie folgt verwenden:

$("#ring-preview img.stone-preview").each(function(i) { 
    $(this).rotate(ring.stones[i].stone_rotation); 
}); 

Der erste Parameter an die Callback-Funktion ist der Index Sie nach.

+0

wo ist das 'each'? – borisdiakur

+0

@Lego - vermisst, offenbar :) Fest! –

5
$('#ring-preview img.stone-preview').each(function(idx, itm) { 
    $(itm).rotate(stones[idx].stone_rotation); 
}); 
+0

Das 'IDX' und 'ITM' in jeder Funktion funktionierte für mich. –