在jQuery.each中返回

时间:2013-03-30 07:35:17

标签: jquery

我可以拥有jQuery.each的实现,其中如果我在jQuery.each中处理的数组中找到任何匹配,那么我可以在不进一步处理剩余元素的情况下中断/返回。

<ul>
<li>foo</li>
<li>bar</li>

您可以选择列表项并迭代它们:

$( "li" ).each(function( index ) {
  //if($(this).text() == 'foo') , i.e if foo is found , 
//then return instead of processing bar.
});

3 个答案:

答案 0 :(得分:3)

return false这样做:

var elem;

$( "li" ).each(function() {
    if($(this).text() == 'foo') {
        elem = this;
        return false;
    }
});

答案 1 :(得分:2)

来自文档。

我们可以通过使回调函数返回false来在特定迭代中中断$ .each()循环。返回非false与for循环中的continue语句相同;它会立即跳到下一次迭代

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

答案 2 :(得分:1)

来自jQuery documentation

  

我们可以在特定的迭代中打破$ .each()循环   回调函数返回false。返回非假是与a相同   在for循环中继续声明;它将立即跳到下一个   迭代。

示例:

<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>

<script>

    var arr = [ "one", "two", "three", "four", "five" ];
    jQuery.each(arr, function() {
        $("#" + this).text("Mine is " + this + ".");
        return (this != "three"); // will stop running after "three"
    });

</script>`