651 Stimmen

Wie zu brechen/beenden Sie eine each() Funktion in JQuery?

Ich habe etwas Code:

$(xml).find("strengths").each(function() {
   //Code
   //How can i escape from this block based on a condition.
});

Wie kann ich den Codeblock "each" auf der Grundlage einer Bedingung verlassen?

Aktualisierung:

Wie wäre es, wenn wir etwas wie dieses hätten?

$(xml).find("strengths").each(function() {
   $(this).each(function() {
       //I want to break out from both each loops at the same time.
   });
});

Ist es möglich, die beiden "each"-Funktionen von der inneren "each"-Funktion zu trennen?

# 19.03.2013

Wenn Sie weitermachen wollen, anstatt auszubrechen

return true;

1 Stimmen

1 Stimmen

Kein Duplikat. Die verlinkte Frage bezieht sich auf $.each() aber in diesem Fall geht es um $().each Das sind zwei verschiedene Dinge.

0 Stimmen

Dies ist der zweite Link auf Google für diese Suche.

1078voto

Greg Punkte 306033

Nach Angaben der Dokumentation können Sie einfach return false; zu brechen:

$(xml).find("strengths").each(function() {

    if (iWantToBreak)
        return false;
});

14 Stimmen

Das einfache 'return' funktioniert bei mir nicht. deshalb habe ich es gegoogelt und diesen Beitrag gefunden. 'return false' funktioniert. ich verwende osx lion mit chrome.

1 Stimmen

"einfache Rückgabe" tatsächlich zurückgibt. Es gibt die Kontrolle von der each und alles andere um sie herum und nach ihr, bis sie aus each() übergeordnetes Steuerelement - wie z.B. eine Funktion(), die jede Funktion verwendet. Dies ist die richtige Antwort, und der andere Ansatz wird nicht funktionieren.

30 Stimmen

"Wir können die $.each()-Schleife bei einer bestimmten Iteration unterbrechen, indem wir die Callback-Funktion dazu bringen, false zurückzugeben. Die Rückgabe von nicht-false ist dasselbe wie eine continue-Anweisung in einer for-Schleife; es wird sofort zur nächsten Iteration übergegangen."

135voto

Subodh Ghulaxe Punkte 17873

Sie können verwenden return false;

+----------------------------------------+
| JavaScript              | PHP          |
+-------------------------+--------------+
|                         |              |
| return false;           | break;       |
|                         |              |
| return true; or return; | continue;    |
+-------------------------+--------------+

1 Stimmen

Ich verstehe nicht, was Sie meinen

4 Stimmen

Ich meine zu sagen, return false; in javascript ist dasselbe wie break in PHP und return true; oder return; ist dasselbe wie continue

3 Stimmen

@SubodhGhulaxe es ist jQuery nicht javascript

110voto

Guffa Punkte 663241

Rückgabe von false aus der anonymen Funktion:

$(xml).find("strengths").each(function() {
  // Code
  // To escape from this block based on a condition:
  if (something) return false;
});

Aus der Dokumentation des jede Methode :

Rückgabe von 'false' innerhalb der einzelnen Funktion stoppt die Schleife durch alle Elemente (dies ist wie die Verwendung eines 'break' bei einer normalen Schleife). Die Rückgabe von 'true' innerhalb der der Schleife wird zur nächsten Iteration übersprungen (dies entspricht der Verwendung eines 'continue' in einer normalen Schleife).

28voto

adardesign Punkte 31386
if (condition){ // where condition evaluates to true 
    return false
}

siehe ähnliche Frage fragte vor 3 Tagen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X