这是我的代码:
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
迭代?
答案 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 false
到break
,或者,如果你想要像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,这应该会突破循环。