Как выйти от $ .each, функционируют когда условие, которое соблюдают

Как я могу выйти от $.each цикл, когда условие соблюдают? Я не хочу выполнять итерации набора далее.

$(vehicles).each(function() {
    if (this["@id"] === vehicleId[0]) {
      vehicle = this;
    }
});

Я попробовал break; & return; оператор, но выглядит, что выполнение не не останавливается в той точке. Любая идея значительно ценилась бы.

13
задан Kobi 29 June 2010 в 15:45
поделиться

3 ответа

Возврат false эквивалентен выходу из цикла $ .each. Итак, в вашем примере:

   if (this["@id"] === vehicleId[0]) { vehicle = this; return false; }
15
ответ дан 1 December 2019 в 22:54
поделиться

Поскольку .each () выполняет итерацию по обернутому набору и выполняет заданную функцию для каждого элемента, break не влияет на фактическую итерацию. Однако вы можете добиться желаемого без итераций, просто позвонив

vehicle = $('#' + vehicleId[0], $(vehicles));

или (как было предложено Коби в комментарии)

vehicle = $(vehicle).filter('#' + vehicleId[0]);
0
ответ дан 1 December 2019 в 22:54
поделиться

Вам нужно явно

return false;

http://api.jquery.com/each/

5
ответ дан 1 December 2019 в 22:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: