Як використовувати продовжити в jQuery кожну цикл ()?


175

У своїй програмі я використовую дзвінок AJAX. Я хочу використовувати breakі continueв цьому циклі jQuery.

$('.submit').filter(':checked').each(function() {

});


Відповідь можна знайти тут: stackoverflow.com/questions/481601 / ...
Buchannon

Відповіді:


364

Ми можемо розірвати і $(selector).each()цикл, і $.each()цикл під час конкретної ітерації, зробивши функцію зворотного виклику поверненням false. Повернення non-false- це те саме, що оператор Continue у forциклі; вона перейде негайно до наступної ітерації.

return false; // this is equivalent of 'break' for jQuery loop

return;       // this is equivalent of 'continue' for jQuery loop

Зауважте, що $(selector).each()і $.each()є різні функції.

Список літератури:


Хоча це правда, це, здається, не підтверджено документально. Це "неофіційна" особливість?
Майкл Шепер

7
Це задокументовано тут api.jquery.com/jquery.each @MichaelScheper
Jayram

1
Це перше місце, яке я подивився, звичайно. Я бачу це зараз; вона ніби втрачається серед усіх прикладів.
Майкл Шепер

29
$('.submit').filter(':checked').each(function() {
    //This is same as 'continue'
    if(something){
        return true;
    }
    //This is same as 'break'
    if(something){
        return false;
    }
});

3
Хоча цей код може відповісти на питання, надаючи додатковий контекст стосовно того, чому та / або як цей код відповідає на питання, покращує його довгострокове значення.
Ajean

7

Ми можемо розбити цикл $ .each () на певній ітерації, зробивши функцію зворотного виклику помилковою. Повернення non-false - це те саме, що оператор продовження в циклі for; вона перейде негайно до наступної ітерації. - jQuery.each () | Документація API jQuery


6

повернення чи повернення помилкових - не те саме, що й надалі. Якщо цикл знаходиться всередині функції, решта функції не буде виконуватися так, як ви очікували при справжньому "продовженні".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.