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

Teb*_*ebo 602 javascript jquery

我有一些代码:

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

如何根据条件从"每个"代码块中逃脱?

更新:

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

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

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

#19.03.2013

如果你想继续而不是爆发

return true;
Run Code Online (Sandbox Code Playgroud)

Gre*_*reg 1002

根据文档,你可以简单return false;地打破:

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

    if (iWantToBreak)
        return false;
});
Run Code Online (Sandbox Code Playgroud)

  • "我们可以通过使回调函数返回false来在特定迭代中中断$ .each()循环.返回非false与for循环中的continue语句相同;它将立即跳到下一次迭代." (27认同)
  • 简单的"回归"对我不起作用.这就是为什么我用Google搜索并发现这篇文章.'return false'有效.我正在运行osx lion with chrome. (12认同)
  • 请注意,这不会杀死主函数,循环可能会中断,但是当您使用此jQuery每个都在继续之前检查所需的字段时,无论中断如何都会继续.为此你应该在循环中使用var kill变量集,如果kill == 1则在它之外读取以返回 (7认同)

Sub*_*axe 116

您可以使用 return false;

+----------------------------------------+
| JavaScript              | PHP          |
+-------------------------+--------------+
|                         |              |
| return false;           | break;       |
|                         |              |
| return true; or return; | continue;    |
+-------------------------+--------------+
Run Code Online (Sandbox Code Playgroud)

  • @SubodhGhulaxe在javascript中返回false`意味着在PHP中返回布尔类型相同.但是在`jquery.each()`中,它将被jQuery解释为停止循环. (6认同)
  • 我的意思是说回归虚假; 在javascript中与PHP中的break相同并返回true; 或返回; 与继续相同 (4认同)
  • @SubodhGhulaxe它是jQuery而不是javascript (2认同)

Guf*_*ffa 106

从匿名函数返回false:

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

每种方法的文档:

从每个函数中返回'false'会完全停止循环遍历所有元素(这就像使用带有正常循环的'break').从循环内返回'true'会跳到下一次迭代(这就像使用带有正常循环的'continue').


ada*_*ign 24

if (condition){ // where condition evaluates to true 
    return false
}
Run Code Online (Sandbox Code Playgroud)

3天前看到类似的问题.