如何中断/退出 JQuery 中的 each() 函数?

IT技术 javascript jquery
2021-02-03 16:45:53

我有一些代码:

$(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个回答

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

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

    if (iWantToBreak)
        return false;
});
简单的“回报”对我不起作用。这就是为什么我用谷歌搜索它并找到了这篇文章。“返回假”有效。我正在用 chrome 运行 osx lion。
2021-03-19 16:45:53
请注意,这不会杀死主函数,循环可能会中断,但是当您在继续之前使用此 jQuery each 检查所需字段时,无论中断如何,它都会继续。为此,您应该使用循环中设置的 var kill 变量,并在其外部读取以在 kill==1 时返回
2021-03-26 16:45:53
“简单返回”实际上返回。它将从each和它周围的所有其他东西返回控制权,直到它退出 的each()父控件 - 例如使用 each 的 function() 。这是正确的答案,其他方法不起作用。
2021-03-27 16:45:53
“我们可以通过使回调函数返回 false 来在特定迭代中中断 $.each() 循环。返回非 false 与 for 循环中的 continue 语句相同;它将立即跳到下一次迭代。”
2021-04-12 16:45:53

您可以使用 return false;

+----------------------------------------+
| JavaScript              | PHP          |
+-------------------------+--------------+
|                         |              |
| return false;           | break;       |
|                         |              |
| return true; or return; | continue;    |
+-------------------------+--------------+
return falsejavascript 中的@SubodhGhulaxe 的意思是在 PHP 中返回相同的布尔类型。jquery.each()它会被 jQuery 解释为停止循环。
2021-03-14 16:45:53
所以 Codler 和 return false 有什么区别;在javascript中并返回false;在 jQuery 中
2021-03-19 16:45:53
我不明白你的意思
2021-03-23 16:45:53
我的意思是说 return false; 在 javascript 中与在 PHP 中的 break 相同并返回 true;或返回;与继续相同
2021-03-30 16:45:53
@SubodhGhulaxe 它是 jQuery 而不是 javascript
2021-04-01 16:45:53

从匿名函数返回 false:

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

每个方法的文档中

从 each 函数中返回 'false' 会完全停止所有元素的循环(这就像在普通循环中使用 'break' 一样)。从循环内返回“真”会跳到下一次迭代(这就像在正常循环中使用“继续”一样)。

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

看到3 天前提出的类似问题