Как использовать продолжение в цикле jQuery each ()?

Ответы:

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()это разные функции.

Ссылки:

Jayram
источник
Хотя это правда, похоже, это не задокументировано. Это «неофициальная» функция?
Майкл Шепер
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
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, повышает его долгосрочную ценность.
Аджан
7

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

Набиль Кадими
источник
6

return или return false - это не то же самое, что продолжить. Если цикл находится внутри функции, оставшаяся часть функции не будет выполняться так, как вы ожидаете с истинным «продолжением».

Билли
источник