Ответ 1
Возвращение false является эквивалентом разрыва цикла $.each. Итак, в вашем примере:
if (this["@id"] === vehicleId[0]) { vehicle = this; return false; }
Как я могу выйти из цикла $.each
при выполнении условия? Я не хочу повторять итерацию коллекции.
$(vehicles).each(function() {
if (this["@id"] === vehicleId[0]) {
vehicle = this;
}
});
Я попытался с помощью оператора break;
и return;
, но он выглядит, что выполнение не останавливается в этой точке. Любая идея была бы с благодарностью.
Возвращение false является эквивалентом разрыва цикла $.each. Итак, в вашем примере:
if (this["@id"] === vehicleId[0]) { vehicle = this; return false; }
Вам нужно явно указать
return false;
Так как .each()
выполняет итерацию по завернутому набору и выполняет заданную функцию для каждого элемента, break
не влияет на фактическую итерацию. Тем не менее, вы можете добиться того, что вам нужно без итерации, просто позвонив
vehicle = $('#' + vehicleId[0], $(vehicles));
или (как было предложено Kobi в комментарии)
vehicle = $(vehicle).filter('#' + vehicleId[0]);