2010-05-11 18 views
9

Comment puis-je quitter chaque fonction lorsque les conditions étaient vraies une fois?Comment quitter mootools chaque()

Cela ne fonctionne pas:

$$('.box div').each(function(e) { 
if(e.get('html') == '') { 
    e.set('html', 'test'); 
    exit; 
} 
    }); 

Répondre

14

utilisation .some?

$$('.box div').some(function(e) { 
    if(e.get('html') == '') { 
     e.set('html', 'test'); 
     return true; 
    } else 
     return false; 
    }); 

Mais probablement vous pouvez simplement utiliser

arr = $$('.box div[html=""]'); 
    if (arr.length > 0) 
    arr[0].set("html", "test"); 
+0

+1 Quelle belle idée! (A pris la liberté d'ajouter un lien vers les docs.) –

+0

Merci, ça marche super :) – Billy

+0

vous êtes un génie! – Alex

1

Juste throw quelque chose et catch il plus:

try { 
    $$('.box div').each(function(e) { 
    if(e.get('html') == '') { 
     e.set('html', 'test'); 
     throw "break"; 
    } 
    }); 
} catch (e) { 
    if(e != "break") throw e; 
} 

Mais en utilisant une combinaison de .every et .some serait une bien meilleure idée.