Wie verwende ich continue in jQuery each () loop?


Antworten:


364

Wir können brechen sowohl eine $(selector).each()Schleife und eine $.each()Schleife an einer bestimmten Iteration durch die Rückkehr Callback - Funktion machen false. Die Rückgabe entspricht non-falseeiner continue-Anweisung in einer forSchleife. Es wird sofort zur nächsten Iteration gesprungen.

return false; // this is equivalent of 'break' for jQuery loop

return;       // this is equivalent of 'continue' for jQuery loop

Beachten Sie, dass $(selector).each()und $.each()sind unterschiedliche Funktionen.

Verweise:


Obwohl dies zutrifft, scheint dies nicht dokumentiert zu sein. Ist das eine "inoffizielle" Funktion?
Michael Scheper

7
Es ist dokumentiert hier api.jquery.com/jquery.each @MichaelScheper
Jayram

1
Das ist natürlich der erste Ort, an dem ich gesucht habe. Ich sehe es jetzt; es geht irgendwie unter all den Beispielen verloren.
Michael Scheper

29
$('.submit').filter(':checked').each(function() {
    //This is same as 'continue'
    if(something){
        return true;
    }
    //This is same as 'break'
    if(something){
        return false;
    }
});

3
Während dieser Code die Frage möglicherweise beantwortet, verbessert die Bereitstellung eines zusätzlichen Kontexts darüber, warum und / oder wie dieser Code die Frage beantwortet, ihren langfristigen Wert.
Ajean

7

Wir können die $ .each () - Schleife bei einer bestimmten Iteration unterbrechen, indem wir die Rückruffunktion auf false zurückgeben. Die Rückgabe von non-false entspricht einer continue-Anweisung in einer for-Schleife. Es wird sofort zur nächsten Iteration gesprungen. - jQuery.each () | jQuery API-Dokumentation


6

return oder return false sind nicht dasselbe wie continue. Befindet sich die Schleife innerhalb einer Funktion, wird der Rest der Funktion nicht wie erwartet mit einem echten "Fortsetzen" ausgeführt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.