Ich habe ein div und es enthält mehrere Eingabeelemente ... Ich möchte jedes dieser Elemente durchlaufen. Ideen?
257
Verwenden Sie children()
und each()
, Sie können optional einen Selektor an übergebenchildren
$('#mydiv').children('input').each(function () {
alert(this.value); // "this" is the current element in the loop
});
Sie können auch einfach die unmittelbare untergeordnete Auswahl verwenden:
$('#mydiv > input').each(function () { /* ... */ });
each()
. Überprüfen Sie die Dokumente, die in der obigen Antwort verlinkt sind.Es ist auch möglich, alle Elemente in einem bestimmten Kontext zu durchlaufen, unabhängig davon, wie tief sie verschachtelt sind:
Der zweite Parameter $ ('# mydiv'), der an den jQuery 'input' Selector übergeben wird, ist der Kontext. In diesem Fall durchläuft die each () -Klausel alle Eingabeelemente im # mydiv-Container, auch wenn sie keine direkten untergeordneten Elemente von #mydiv sind.
quelle
Wenn Sie untergeordnete Elemente rekursiv durchlaufen müssen :
quelle
Dies kann auch folgendermaßen geschehen:
quelle
Dadurch werden alle untergeordneten Elemente durchlaufen, und auf ihr Element mit Indexwert kann separat über Element und Index zugegriffen werden .
quelle
children () ist eine Schleife für sich.
quelle
Ich denke nicht, dass Sie verwenden müssen
each()
, können Sie Standard für Schleife verwendenAuf diese Weise können Sie den Standard für Schleifenfunktionen wie
break
undcontinue
standardmäßig verwendenauch der
debugging will be easier
quelle
$.each()
immer langsamer ist als einefor
Schleife, und dies ist die einzige Antwort, die sie verwendet. Der Schlüssel hier ist, mit dem.eq()
auf das eigentliche Element innerhalb deschildren
Arrays zuzugreifen und nicht mit der Klammer ([]
).