如何在JQuery中打破/退出each()函数?

时间:2009-11-25 19:11:17

标签: javascript jquery

我有一些代码:

$(xml).find("strengths").each(function() {
   //Code
   //How can i escape from this block based on a condition.
});

如何根据条件逃离“每个”代码块?

更新

如果我们有这样的事情怎么办:

$(xml).find("strengths").each(function() {
   $(this).each(function() {
       //I want to break out from both each loops at the same time.
   });
});

是否有可能从内部“每个”功能中突破“每个”功能?

#19.03.2013

如果您想继续而不是突破

return true;

4 个答案:

答案 0 :(得分:965)

根据documentation,您只需return false;即可打破:

$(xml).find("strengths").each(function() {

    if (iWantToBreak)
        return false;
});

答案 1 :(得分:105)

从匿名函数返回false:

$(xml).find("strengths").each(function() {
  // Code
  // To escape from this block based on a condition:
  if (something) return false;
});

来自each method的文档:

  

从每个内部返回'false'   功能完全停止循环   通过所有元素(这是   比如使用正常的“休息”   环)。从内部回归“真实”   循环跳到下一次迭代   (这就像使用'继续'一样   一个正常的循环)。

答案 2 :(得分:105)

您可以使用return false;

+----------------------------------------+
| JavaScript              | PHP          |
+-------------------------+--------------+
|                         |              |
| return false;           | break;       |
|                         |              |
| return true; or return; | continue;    |
+-------------------------+--------------+

答案 3 :(得分:23)

if (condition){ // where condition evaluates to true 
    return false
}

请参阅3天前发出的 similar question