我有一个$ .each jQuery函数坐在父javascript函数中,如何在某个索引(i)上打破父函数?
Arn*_*anc 10
要从一个循环中断,只需返回false:
$('something').each(function() {
if (need_to_break) {
return false; // returning false stops the loop
}
});
Run Code Online (Sandbox Code Playgroud)
要立即从多个each循环中断/返回,只需抛出异常:
var $break = {};
$('something').each(function() {
try {
$('something').each(function() {
$('something').each(function() {
$('something').each(function() {
throw $break;
});
});
});
} catch(E) {
if (E != $break) throw E;
}
});
Run Code Online (Sandbox Code Playgroud)
并在你想要返回的循环中捕获它.
这是怎样的prototype.js 工具break,在他们的Enumerable.each(),例如.
更传统的解决方案:
var do_break = false;
$('something').each(function() {
$('something').each(function() {
$('something').each(function() {
$('something').each(function() {
do_break = true;
return false;
});
if (do_break) {
return false;
}
});
if (do_break) {
return false;
}
});
if (do_break) {
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
从它的声音,你有这样的事情:
function outer(someParam) {
$.each(someParam, function(i) {
// do something with each value in someParam
});
}
Run Code Online (Sandbox Code Playgroud)
您希望从outer内循环达到某个值时返回.你不能一气呵成.关键点在于,return false从$.each回调中结束"循环".然后,如果需要,可以设置变量以有条件地返回:
function outer(someParam) {
var returnNow = false;
$.each(someParam, function(i) {
if (i === 5) {
returnNow = true;
return false;
}
// do something with each value in someParam
});
if (returnNow) {
return;
// return immediately
}
// do some other action if you want to
}
Run Code Online (Sandbox Code Playgroud)