在jQuery each()循环中运行满足条件的第一个元素的代码

时间:2015-02-16 21:54:49

标签: jquery each

我知道如何为每个()循环中找到的第一个元素运行代码:

$('.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
    }
});

2 个答案:

答案 0 :(得分:1)

您可以在循环外部设置 ,并使用它来确定是否已满足条件。满足条件后,更改变量以防止再次执行。

Example Here

(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以停止