如何突破.each()迭代

时间:2012-03-06 17:17:59

标签: jquery

  

可能重复:
  Nested jQuery.each() - continue/break

这是我的代码:

var steps = $("div#f");
steps.each(function () {
    var s = $(this);
    var cs = $(this).find(".Cm");
    cs.each(function () {
        var tc = $(this);
        var err = tc.attr("h");
        if (err == false) {
            this.c = err;//this.c is a global variable
            return this.c;
            break;//here is where the error is being thrown
        }
        else {
            this.c =  {"Eval": err, "S": s, "Cm": tc};
            return this.c;
        }
    });
});

我使用.each()次迭代来收集值。我认为它的功能就像一个循环所以我认为id使用break语句来突破。这是一个非法的"错误。有谁知道如何突破each迭代?

4 个答案:

答案 0 :(得分:12)

使用return false。请查看此资源:http://gavinroy.com/jquery-tip-how-to-break-out-of-each

答案 1 :(得分:4)

要突破.each(),只需使用return false;

即可

请查看jQuery .each() docs了解详情。

这是一个例子,在文档中给出:

$("button").click(function() {
    $("div").each(function(index, domEle) {
        // domEle == this
        $(domEle).css("backgroundColor", "yellow");
        if ($(this).is("#stop")) {
            $("span").text("Stopped at div index #" + index);
            return false; //Equivalent to break;
        }
    });
});​

答案 2 :(得分:1)

它是一个函数,你可以完全离开循环return falsebreak,或者,如果你想要像continue语句一样工作,你可以return true

each( function() 
{
   if ( someCondition ) return true; // same as continue;
   if ( someOtherCondition) return false; // same as break;
} );

答案 3 :(得分:0)

你并不是真正处于for-each循环中,所以休息没有意义。它实际上是每次调用的函数,因此您需要从该函数返回并告诉jQuery停止调用。

返回false,这应该会突破循环。