Рассмотрим следующий код:
var sentences = [
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
'Vivamus aliquet nisl quis velit ornare tempor.',
'Cras sit amet neque ante, eu ultrices est.',
'Integer id lectus id nunc venenatis gravida nec eget dolor.',
'Suspendisse imperdiet turpis ut justo ultricies a aliquet tortor ultrices.'
];
var words = ['ipsum', 'amet', 'elit'];
$(sentences).each(function() {
var s = this;
alert(s);
$(words).each(function(i) {
if (s.indexOf(this) > -1)
{
alert('found ' + this);
return false;
}
});
});
Интересная часть - это вложенные циклы jQuery.each (). Согласно документации, возврат false приведет к выходу из цикла (прекращение выполнения цикла - аналогично обычному оператору break в JavaScript), а возвращение значения, отличного от false, остановит текущую итерацию и продолжит выполнение следующей итерации (аналогично обычному оператору continue в JavaScript).
Я могу прервать или продолжить jQuery.each () самостоятельно, но с вложенным jQuery.each мне было трудно выйти из родительского цикла из дочернего цикла. Я мог бы использовать логическое значение и обновлять его на каждой дочерней итерации, но мне было интересно, есть ли более простой способ.
Я установил пример на jsFiddle, если вы хотите повозиться с ним. Просто нажмите кнопку «Тест», чтобы запустить показанный выше пример.
TL; DR: есть ли что-нибудь похожее на помеченное продолжение или прерывание в контексте jQuery?
for
сделает то, что вы хотите :) - person Nick Craver   schedule 16.07.2010