如何从 JQuery 中的 each() 函数中中断/退出? [复制]
Posted
技术标签:
【中文标题】如何从 JQuery 中的 each() 函数中中断/退出? [复制]【英文标题】:How to break/exit from a each() function in JQuery? [duplicate] 【发布时间】: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;
【问题讨论】:
直接访问文档:google.com/search?q=jquery+for+each+break, api.jquery.com/jquery.each 不是重复的。链接的问题是关于$.each()
,但这个问题是关于$().each
,它们是两个不同的东西。
这是谷歌上用于该搜索的第二个链接。
【参考方案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 中 @SubodhGhulaxereturn 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 天前询问。
【讨论】:
以上是关于如何从 JQuery 中的 each() 函数中中断/退出? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
带有 ES6 箭头函数的 jQuery .each() 函数