协慌网

登录 贡献 社区

如何在每个循环中突破 jQuery

如何打破 jQuery 的each循环?

我试过了:

return false;

在循环中,但这没有用。有任何想法吗?

更新 9/5/2020

我把return false;在错误的地方。当我将其放入循环中时,一切正常。

答案

break $.each$(selector).each循环,您必须在循环回调中false

返回true跳到下一个迭代,等效于在正常循环中continue

$.each(array, function(key, value) { 
    if(value === "foo") {
        return false; // breaks
    }
});

// or

$(selector).each(function() {
  if (condition) {
    return false;
  }
});

根据文档return false;应该做的工作。

我们可以通过使回调函数返回 false 来破坏 $ .each()循环 [..]。

在回调中返回 false:

function callback(indexInArray, valueOfElement) {
  var booleanKeepGoing;

  this; // == valueOfElement (casted to Object)

  return booleanKeepGoing; // optional, unless false 
                           // and want to stop looping
}

顺便说一句, continue工作:

返回非 false 与 for 循环中的 continue 语句相同;它将立即跳至下一个迭代。

我为该问题的答案创建了一个提琴(Fiddle),因为接受的答案不正确,这是 Google 针对该问题返回的第一个 StackOverflow 线程。

要突破 $ .each,必须使用return false;

这是一个小提琴证明:

http://jsfiddle.net/9XqRy/