检查 jQuery 对象是否有任何匹配元素的最快方法

发布于 2024-11-08 04:00:33 字数 420 浏览 0 评论 0原文

假设我有一个巨大的树视图,其中一个分支位于名为 $branch 的变量中,现在我想检查该分支是否包含多个元素扩展 类。换句话说,一旦找到匹配项就应该返回布尔值。

好的,我可以用 $branch.find('.expand').length > 来做到这一点0,但是有没有更好的方法可以在第一个匹配元素上停止,从而更快?

我认为使用 first() 将现有集合的长度减少为 1,所以我会使用 find() 然后减少?

诗。正如您在示例中注意到的那样,我使用了 find() ,因为我想要更深入地了解 $branch 的子级。

Let's say I have huge tree view and one the branches is in variable called $branch and now I want to check does that branch contain none or more than one element with expand classes. In other words boolean should be returned as soon as one match is found.

Okay, I can do this with $branch.find('.expand').length > 0, but is there a better way that would stop on the first matching element and therefore would be faster?

I think using first() reduces existing set to length of one, so I would have use find() and then reduce?

Ps. As you noticed in the example I used find() because I want to go deeper than just children of the $branch

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黑白记忆 2024-11-15 04:00:33

像这样的标准 CSS 选择器使用本机 DOM 方法 querySelectorAll()。即它们在浏览器的本机代码中运行并且速度很快。除非您有理由认为执行上述操作很慢,否则我怀疑您不需要担心它。

Standard CSS selectors like this use the native DOM method querySelectorAll(). I.e. they run in the browser's native code and they're fast. Unless you've got reason to think that doing the above is slow, I doubt you need to worry about it.

莫多说 2024-11-15 04:00:33

您肯定想看看 .has() 方法。

var $branchesWithExpand = $branch.has('.expand');

You definitely want to take a look at the .has() method.

var $branchesWithExpand = $branch.has('.expand');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文