我使用return false来终止每个循环,但它没有打破循环。 我的代码如下:
$.each(popuparray, function (i, item) {
$('.droparea >.ss-active-child').each(function () {
if (this.id == finaldivId) {
alert("this is " + this.id + " finaldivId " + finaldivId);
return false;
}
});
//some code here as well
});
请建议我解决方案。
答案 0 :(得分:3)
尝试声明一个标志并根据内部循环的流程切换它,并根据该标志决定外循环的流程,
var xCondition = false;
$.each(popuparray, function (i, item) {
$('.droparea >.ss-active-child').each(function () {
if (this.id == finaldivId) {
alert("this is " + this.id + " finaldivId " + finaldivId);
xCondition = true;
return false;
}
});
if(xCondition){ xCondition = false; return false; }
});
答案 1 :(得分:0)
你还需要从out循环返回,你可以使用一个flag变量来跟踪内部循环中的有效状态,并从外部循环中返回它的值。
$.each(popuparray, function (i, item) {
var flag = true;
$('.droparea >.ss-active-child').each(function () {
if (this.id == finaldivId) {
alert("this is " + this.id + " finaldivId " + finaldivId);
flag = false;
return false;
}
});
//some code here as well
return flag;
});
答案 2 :(得分:0)
如果你想要两个循环退出条件,那么这样做:
$.each(popuparray, function (i, item) {
var flag = true;
$('.droparea >.ss-active-child').each(function () {
if (this.id == finaldivId) {
alert("this is " + this.id + " finaldivId " + finaldivId);
flag = false;
return false;
}
});
if(!flag)
{
return false;
}
});
注意:返回true表示继续操作,因此您需要检查该标志,然后在外部循环中返回false。