web-dev-qa-db-fra.com

Comment casser / sortir d'une fonction each () dans JQuery?

J'ai du code:

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

Comment puis-je m'échapper du bloc de code "each" en fonction d'une condition?

Mise à jour:

Et si nous avons quelque chose comme ça:

$(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 "chaque" de la fonction intérieure "chaque"?

# 19.03.201

Si vous voulez continuer au lieu de sortir

return true;
592
Tebo

Selon le documentation vous pouvez simplement return false; casser:

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

    if (iWantToBreak)
        return false;
});
988
Greg

Vous pouvez utiliser return false;

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

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;
});

De la documentation de la chaque méthode :

Renvoyer 'false' depuis chaque fonction arrête complètement la boucle entre tous les éléments (c'est comme utiliser une 'pause' avec une boucle normale). Si vous retournez 'true' depuis la boucle, vous passez à la prochaine itération (c'est comme si vous utilisiez 'continue' avec une boucle normale).

105
Guffa
if (condition){ // where condition evaluates to true 
    return false
}

voir question similaire demandé il y a 3 jours.

23
adardesign