jquery - 选择一组元素的最有效方法

标签 jquery css

例如,如果我有一个无序列表,可以说,

<ul>
    <li class="foo">Foo</li>
    <li class="bar">Bar</li>
</ul>

我可以选择 foo 作为 $('ul li.foo')$('li.foo')$('.foo' )

然后哪种方式更有效(如果有的话)以及为什么。还是在选择子项时指定父项只是为了消除任何冲突,以防其他元素具有相同的类名!

最佳答案

简单的类选择器 .foo 在现代浏览器中将是最快的,因为它可以使用 native getElementsByClassName在可用的地方。

这是一个 benchmark准确地显示:

enter image description here

您可以在对您重要的所有浏览器中运行该性能测试,并根据结果做出决定。或者只使用最适合您的情况的选择器,因为在现实世界中它不会产生任何明显的差异。

更新

现在我们可以看到更多浏览器的性能结果,您可以看到新旧之间的区别(IE7 和 8 中缺少 getElementsByClassName)。但是,这些天您可能会从更新的浏览器收到更多的流量,但我不知道您的网站,所以正如我之前提到的,您只需要选择适合您的即可。如果出于某种原因 90% 的流量来自 IE7,您应该使用 li.foo

关于jquery - 选择一组元素的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10621655/

相关文章:

javascript - 用文本省略号在同一行显示 2 个文本

javascript - Jquery 每个函数在服务器上不工作

jquery - 上传文件+表单数据+Spring MVC + JQuery

HTML 电子邮件定位

html - 无法使菜单正常运行

css - 如何更改 CSS 子菜单宽度,使其不使用与主菜单相同的宽度?

html - 如何在窗口浏览器底部展开页脚

javascript - 如何检查我的 css 动画是否完成?

javascript - 将 div 水平折叠到给定宽度

jquery - 调整 uniform.js div.selector 元素的大小