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


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
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, повышает его долгосрочную ценность.
Аджан


6

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.