javascript – 如何判断$(“..”).each()调用是否过早中止?

前端之家收集整理的这篇文章主要介绍了javascript – 如何判断$(“..”).each()调用是否过早中止?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,一些假的伪代码
$("some-selector-logic").each(function() {
  if (someLogic($(this))) {
    return false;
  }
  // Otherwise do stuff related to $(this)
});

someMoreExcitingCode();

在这个例子中,我们基于一些选择器逻辑获得DOM元素的集合,然后迭代每个元素.对于每个元素,我们调用someLogic().如果返回true,我们将中止每个循环.否则,我们对元素执行一些逻辑,然后继续前进到下一个元素.一旦我们完成了所有元素,我们继续并调用someMoreExcitingCode().

我想知道,在调用someMoreExcitingCode()之前,循环是否过早中止.显然你可以这样做:

var aborted = false;
$("..").each(function() {
  if (someLogic($(this))) {
    aborted = true;
    return false;
  }
});

但这对我来说感觉很草率,就像jQuery应该以另一种方式向我提供这些信息.是否有一种更为惯用的方法来实现这一点,我不知道呢?

解决方法

由于jQuery函数倾向于返回它们被调用的相同对象集合(允许链接),因此each()函数无法将该信息返回给您 – 它已经返回了一个可以链接的jQuery对象其他方法调用.

根据您提供的信息,我没有发现使用外部标志或计数器变量来获取此信息的问题.如果你告诉我们为什么你需要知道这个,我们可能会提供更多有用的建议.

猜你在找的JavaScript相关文章