Considérons le code suivant :
var sentences = [
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
'Vivamus aliquet nisl quis velit ornare tempor.',
'Cras sit amet neque ante, eu ultrices est.',
'Integer id lectus id nunc venenatis gravida nec eget dolor.',
'Suspendisse imperdiet turpis ut justo ultricies a aliquet tortor ultrices.'
];
var words = ['ipsum', 'amet', 'elit'];
$(sentences).each(function() {
var s = this;
alert(s);
$(words).each(function(i) {
if (s.indexOf(this) > -1)
{
alert('found ' + this);
return false;
}
});
});
La partie intéressante est l'imbrication des boucles jQuery.each(). D'après la documentation Le retour de l'instruction false permet de sortir de la boucle (en interrompant l'exécution de la boucle - de façon similaire à l'instruction break de JavaScript), et le retour de l'instruction non-false permet d'arrêter l'itération en cours et de poursuivre l'itération suivante (de façon similaire à l'instruction continue de JavaScript).
Je peux interrompre ou poursuivre un jQuery.each() seul, mais avec des jQuery.each imbriqués, il m'est difficile de sortir de la boucle parent à l'intérieur de la boucle enfant. Je pourrais utiliser une valeur booléenne et la mettre à jour à chaque itération de l'enfant, mais je me demandais s'il existait un moyen plus simple.
J'ai mis en place un exemple chez jsFiddle si vous voulez vous amuser avec. Il suffit de cliquer sur le bouton "Test" pour exécuter l'exemple ci-dessus.
TLDR : Existe-t-il quelque chose qui ressemble à une étiquette continue ou break dans le contexte de jQuery ?
2 votes
On dirait que tu utilises trop de jQuery ici, un simple
for
3 votes
Il s'agit d'un exemple très simplifié. En réalité, je boucle sur les nœuds du DOM sélectionnés par jQuery, etc.