Comment casser / quitter une fonction each () dans JQuery? [dupliquer]

Cette question a déjà une réponse ici:

J'ai du code:

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

Comment puis-je échapper au bloc de code" chaque " basé sur une condition?

Mise à jour:

Et si nous avons quelque chose comme ceci:

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

Est-il possible de sortir des deux fonctions "chacune" de la fonction intérieure "chaque"?

# 19.03.2013

Si vous souhaitez continuer au lieu de sortir

return true;
550
demandé sur George Jempty 2009-11-25 22:11:17

4 réponses

Selon la documentation Vous pouvez simplement return false; casser:

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

    if (iWantToBreak)
        return false;
});
917
répondu Greg 2009-11-25 19:12:15

Renvoie false à partir de la fonction anonyme:

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

À Partir de la documentation de la chaque méthode:

Renvoyant 'false' De l'intérieur de chaque fonction arrête complètement la boucle tous les éléments (c'est comme utiliser une "pause" avec une normale boucle). Retour "vrai" de l'intérieur la boucle passe à l'itération suivante (c'est comme utiliser un 'continuer' avec normale de la boucle).

101
répondu Guffa 2013-08-12 09:44:39

Vous pouvez utiliser return false;

+----------------------------------------+
| JavaScript              | PHP          |
+-------------------------+--------------+
|                         |              |
| return false;           | break;       |
|                         |              |
| return true; or return; | continue;    |
+-------------------------+--------------+
97
répondu Subodh Ghulaxe 2014-03-12 14:15:43
if (condition){ // where condition evaluates to true 
    return false
}

Voir question similaire posée il y a 3 jours.

21
répondu adardesign 2017-05-23 11:33:26