如何摆脱每个循环的jQuery
我如何摆脱jQuery each
循环?
我努力了:
return false;
在循环中,但这没有奏效。 有任何想法吗?
要break
$.each
循环,必须在循环callback中返回false
。
返回true
跳转到下一个迭代,相当于在正常循环中continue
。
$.each(array, function(key, value) { if(value === "foo") { return false; } });
根据文档return false;
应该做这个工作。
我们可以通过使callback函数返回false来破坏$ .each()循环[..]。
在callback中返回false:
function callback(indexInArray, valueOfElement) { var booleanKeepGoing; this; // == valueOfElement (casted to Object) return booleanKeepGoing; // optional, unless false // and want to stop looping }
顺便说一句, continue
工作:
返回非错误与for循环中的continue语句相同; 它会立即跳到下一个迭代。
我为这个问题的答案创build了一个小提琴,因为接受的答案是不正确的,这是Google从这个问题返回的第一个StackOverflow线程。
要打破$ .each,你必须使用return false;
这是一个小提琴certificate它:
我遇到了遇到一个打破循环的情况,但是.each()函数之后的代码仍然执行。 然后,我将一个标志设置为“true”,并在.each()函数后立即检查该标志,以确保后面的代码不被执行。
$('.groupName').each(function() { if($(this).text() == groupname){ alert('This group already exists'); breakOut = true; return false; } }); if(breakOut) { breakOut = false; return false; }
“每个”使用callback函数。 callback函数与执行函数无关,所以不可能从callback函数返回到调用函数。
如果必须根据某些条件停止循环执行并保留在相同的函数中,请使用for循环。