Was ist der Unterschied zwischen diesen:
$.each($('#myTable input[name="deleteItem[]"]:checked').do_something());
und das:
$('#myTable input[name="deleteItem[]"]:checked').each(function() { do_something });
Das HTML für die Tabellenzelle, die ausgewählt und bearbeitet wird, sieht folgendermaßen aus:
<td width="20px"><input type="checkbox" class="chkDeleteItem" name="deleteItem[]" value="' . $rowItem['itemID'] . '" /></td>
Ich habe die jQuery-Dokumentation durchgesehen, aber ich verstehe den Unterschied immer noch nicht. (Bin ich es oder ist diese Dokumentation manchmal etwas "nebulös" in der Klarheit des Inhalts?)
Info hinzugefügt:
Anscheinend verwirrt mein Versuch, ein generisches Beispiel zu geben, die Leute! Zusammen mit der (zuvor) fehlenden Klammer im ersten Beispiel. :(
Das erste Beispiel stammt aus einer Zeile in meinem Code, in der der <tbody> für alle Zeilen mit einem aktivierten Kontrollkästchen entfernt wird:
$.each($('#classesTable input[name="deleteClasses[]"]:checked').parent().parent().parent().remove());
Das zweite Beispiel stammt aus einer Situation, in der ich in der #classesTable nach aktivierten Kontrollkästchen suche und das entsprechende Element in einer Dropdown-Liste entferne.
$('#classesTable input[name="deleteClasses[]"]:checked').each(function(){
$('#classesList option[value="' + $(this).attr('value') + '"]').remove();
});
Ich verstehe, dass sie zwei verschiedene Dinge tun, aber nicht bis zu dem Punkt, an dem ich sagen könnte: "Ich muss in diesem Fall $ .each () und in einem anderen Fall .each (function () {}) verwenden.
Sind sie überhaupt austauschbar? Nur in einigen Fällen? Noch nie?
Antworten:
Beschreibung:
Beispiele
1)
$.each()
Funktion verwendenvar myArray = [10,20,30]; $.each( myArray, function(index, value) { console.log('element at index ' + index + ' is ' + value); }); //Output element at index 0 is 10 element at index 1 is 20 element at index 2 is 30
2) Mit
.each()
Methode$('#dv').children().each(function(index, element) { console.log('element at index ' + index + 'is ' + (this.tagName)); console.log('current element as dom object:' + element); console.log('current element as jQuery object:' + $(this)); }); //Output element at index 0 is input element at index 1 is p element at index 2 is span
Ressourcen
quelle
von http://api.jquery.com/jQuery.each :
quelle
Sie möchten wirklich
$.each
mit einem Array verwenden, das keine Elemente oder ähnliches ist. dh:var x = ["test", "test2"];
Sie würden verwenden
$.each(x...
, um das zu durchlaufen, anstattx.each
:).each
ist nur für Elemente :)quelle
Es gibt keinen funktionalen Unterschied. Jedes jQuery-Objekt besitzt eine
.each()
Methode, von der geerbt wurdejQuery.fn
. Durch das Aufrufenobject method
weiß jQuery bereits, über wasArray (-like object)
iteriert werden soll. Mit anderen Worten, es wird eine Schleife überindexed propertys
das aktuelle jQuery-Objekt ausgeführt.$.each()
Auf der anderen Seite ist es nur ein "Hilfswerkzeug", das jede Art vonArray
oderObject
durchläuft, aber natürlich müssen Sie dieser Methode mitteilen, welches Ziel Sie iterieren möchten.Es kümmert sich auch um Sie, ob Sie ein Array oder ein Objekt übergeben, es macht das Richtige mit einem
for-in
oderfor loop
unter der Haube.quelle
Der erste führt die Rückruffunktion für die Elemente in der Sammlung aus, die Sie übergeben haben, aber Ihr Code ist derzeit syntaktisch nicht korrekt.
Es sollte sein:
$.each($('#myTable input[name="deleteItem[]"]:checked'), do_something);
Siehe: http://api.jquery.com/jQuery.each/
Im zweiten Schritt wird die Funktion für jedes Element der Sammlung ausgeführt, für die Sie sie ausführen.
Siehe: http://api.jquery.com/each/
quelle
do_something
anstatt es weiterzugeben. Dies ist falsch, es sei denndo_something
, es wird eine Funktion zurückgegeben.Im ersten Fall können Sie über jQuery-Objekte und auch andere Array-Elemente iterieren, wie hier angegeben:
jQuery.each ()
Im zweiten Fall können Sie nur über jQuery-Objekte iterieren, wie hier angegeben:
.jeder()
quelle
Soweit ich
$.each();
weiß, durchläuft es ein Objekt oder Array und gibt Ihnen den Iterator und den Wert jedes Elements an.$().each();
Durchläuft eine Liste von jQuery-Objekten und gibt Ihnen den Iterator und das jQuery-Objekt.quelle
Entnommen aus http://api.jquery.com/jQuery.each/
quelle