我知道如何为每个()循环中找到的第一个元素运行代码:
$('.selector').each(function(i, el){
if ( i === 0) {
// do something
}
});
但是如何在each()循环中运行满足某个条件的第一个元素的代码?
这样的事情:
$('.selector').each(function(i, el){
if ( first element meeting the condition ) {
// do A
}
elseif ( next elements meeting the condition ) {
// do B
}
else {
// do C
}
});
答案 0 :(得分:1)
您可以在循环外部设置 ,并使用它来确定是否已满足条件。满足条件后,更改变量以防止再次执行。
(function () {
var conditionSatisfied = false;
$('.selector').each(function (i, el) {
if ($(this).hasClass('foo') && !conditionSatisfied) {
conditionSatisfied = true;
// ..
} else {
// ..
}
});
})();
根据您要实现的目标,您可能实际上不需要循环。您可以直接选择元素。例如,您可以选择带有.selector
类的.foo
元素,并使用:first
/ .first()
来选择第一个匹配元素。
$('.selector.foo').first();
$('.selector.foo:first');
答案 1 :(得分:0)
如果您尝试对包含某些文本的第一个元素执行某些操作,例如执行if (el.text() == 'something')
,然后在条件内调用return
以停止