762 votes

Comment sortir de chaque boucle de jQuery

Comment puis-je sortir d'un jQuery each boucle ?

J'ai essayé :

 return false;

Dans la boucle mais cela n'a pas fonctionné. Avez-vous des idées ?

Mise à jour 9/5/2020

J'ai mis le return false; au mauvais endroit. Quand je l'ai mis à l'intérieur de la boucle, tout a fonctionné.

15 votes

Pour la postérité : pourquoi l'auteur de la question a-t-il dit que retourner false ne fonctionnait pas ? Pratiquement toutes les réponses disent qu'il faut le faire. Je me demandais si c'était possible parce que cela ne mettait fin qu'à la boucle each. Une déclaration de retour à l'intérieur d'une boucle for, par contre, serait sortir de la boucle et la fonction d'appel . Pour obtenir un comportement aussi radical d'un each-loop, il faudrait définir un drapeau avec une portée de fermeture à l'intérieur du each-loop, puis répondre au drapeau à l'extérieur de celui-ci.

10 votes

@BobStein-VisiBone Quelqu'un a supprimé mon commentaire original. J'ai mis le return false au mauvais endroit. Quand je l'ai réparé, tout a fonctionné.

1 votes

Je ne sais pas pourquoi la "mise à jour" dit return false ne fonctionne pas avec $().each - parce que c'est le cas.

7voto

Sumit Jambhale Points 495

"each" utilise la fonction callback. La fonction callback s'exécute indépendamment de la fonction appelante, il n'est donc pas possible de revenir à la fonction appelante à partir de la fonction callback.

Utilisez la boucle for si vous devez arrêter l'exécution de la boucle en fonction d'une certaine condition et rester dans la même fonction.

1voto

Ahmadreza Sadafi Points 153

J'utilise cette méthode (par exemple) :

$(document).on('click', '#save', function () {
    var cont = true;
    $('.field').each(function () {
        if ($(this).val() === '') {
            alert('Please fill out all fields');
            cont = false;
            return false;
        }
    });
    if (cont === false) {
        return false;
    }
    /* commands block */
});

si cont n'est pas faux lance le bloc de commandes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X