2010-05-11 5 views
9

Wie kann ich die einzelnen Funktionen beenden, wenn die Bedingungen einmal erfüllt waren?So beenden Sie mootools()

funktioniert das nicht:

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

Antwort

14

Verwenden .some?

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

Aber wahrscheinlich könnte man einfach nutzen

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

+1 Was für eine gute Idee !! (Hat die Freiheit genommen, einen Link zu den Dokumenten hinzuzufügen.) –

+0

Danke, funktioniert super :) – Billy

+0

Sie sind ein Genie! – Alex

1

Nur throw etwas und catch es höher:

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

Aber mit einer Kombination aus .every und .some wäre eine viel bessere Idee.