【问题标题】:How to break/exit from a each() function in JQuery? [duplicate]如何从 JQuery 中的 each() 函数中中断/退出? [复制]
【发布时间】:2010-12-20 10:25:56
【问题描述】:

我有一些代码:

$(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;

【问题讨论】:

标签: javascript jquery


【解决方案1】:

根据documentation你可以简单的return false;来破解:

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

    if (iWantToBreak)
        return false;
});

【讨论】:

  • 简单的“返回”对我不起作用。这就是为什么我用谷歌搜索并找到这篇文章的原因。 'return false' 有效。我正在用 chrome 运行 osx lion。
  • “简单返回”实际上返回。它将从each 和它周围的所有其他东西返回控制权,直到它退出each() 的父控件 - 例如使用每个的函数()。这是正确答案,其他方法行不通。
  • "我们可以通过使回调函数返回 false 来在特定迭代中打破 $.each() 循环。返回非 false 与 for 循环中的 continue 语句相同;它将跳过立即进入下一次迭代。”
  • 请注意,这不会杀死主函数,循环可以中断,但是当你使用这个jQuery在继续之前检查所需的字段时,无论中断它都会继续。为此,您应该在循环中使用 var kill 变量集,并在其外部读取以返回 if kill==1
【解决方案2】:

您可以使用return false;

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

【讨论】:

  • 我不明白你的意思
  • 我的意思是return false;在 javascript 中与在 PHP 中的 break 相同并返回 true;或返回;和继续一样
  • @SubodhGhulaxe 它是 jQuery 而不是 javascript
  • so Codler 和 return false 有什么区别;在javascript中并返回false;在 jQuery 中
  • @SubodhGhulaxe return false 在 javascript 中的意思是在 PHP 中返回相同的布尔类型。但在jquery.each() 中,jQuery 会将其解释为停止循环。
【解决方案3】:

从匿名函数返回 false:

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

来自each method的文档:

从 each 中返回 'false' 函数完全停止循环 通过所有元素(这是 就像在正常情况下使用“休息” 环形)。从内部返回“真” 循环跳到下一次迭代 (这就像使用“继续” 一个正常的循环)。

【讨论】:

    【解决方案4】:
    if (condition){ // where condition evaluates to true 
        return false
    }
    

    similar question 3 天前询问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      • 2017-08-28
      相关资源
      最近更新 更多