【发布时间】:2011-03-17 02:24:59
【问题描述】:
考虑以下代码:
var sentences = [
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
'Vivamus aliquet nisl quis velit ornare tempor.',
'Cras sit amet neque ante, eu ultrices est.',
'Integer id lectus id nunc venenatis gravida nec eget dolor.',
'Suspendisse imperdiet turpis ut justo ultricies a aliquet tortor ultrices.'
];
var words = ['ipsum', 'amet', 'elit'];
$(sentences).each(function() {
var s = this;
alert(s);
$(words).each(function(i) {
if (s.indexOf(this) > -1)
{
alert('found ' + this);
return false;
}
});
});
有趣的部分是嵌套的 jQuery.each() 循环。根据the documentation,返回 false 将跳出循环(停止执行循环 - 类似于正常的 JavaScript break 语句),返回非 false 将停止当前迭代并继续下一次迭代(类似于正常的 JavaScript continue 语句)。
我可以自行中断或继续 jQuery.each(),但使用嵌套的 jQuery.each,我发现很难从子循环中中断父循环。我可以使用布尔值,并在每次子迭代时更新它,但我想知道是否有更简单的方法。
我已经设置了an example at jsFiddle,如果你想弄乱它。只需单击“测试”按钮即可运行上述示例。
TLDR: 在 jQuery 的上下文中是否有类似标记的 continue 或 break 的东西?
【问题讨论】:
-
看起来你在这里过度使用 jQuery,一个简单的
for循环会做你想做的事:) -
这是一个非常简单的例子。实际上,我正在循环使用 jQuery 选择的 DOM 节点等。
标签: jquery nested each break continue