jQuery 按类选择 VS 按属性选择

标签 jquery performance jquery-selectors

我只是想征求一下性能方面的意见: 使用 jquery 通过类名或属性名选择元素更快吗? 示例我有 100 个采用这种形式的 DIV 元素:

<div class="normal_box" normal_box=1>...</div>

哪个更快:

$('div.normal_box').each(function(){...});

VS

$('div[normal_box=1]').each(function(){...});

我在 30 个 div 上做了一些实验,但我没有发现 (new Date).getTime(); 有任何区别。 也许按类别选择对 CPU 使用效率更高?

最佳答案

这是一篇很棒的帖子,正是您所寻找的内容。

JQUERY SELECTOR PERFORMANCE TESTING

我还发现了一篇很棒的文章,可以在这个主题上为您提供帮助:

请告诉我这个答案是否真的对您有帮助,谢谢。

更新:我已成功制作了一个示例来匹配您发布的案例,以下是总共 203 个 div 的结果:

1- 通过使用具有特定类名的标签名称 $("div.normal_box") ==> 884 ms

2- 通过使用属性值$("div[normal_box=1]") ==> 4553 ms

更新 2: 我比你的问题做了更多尝试,并测试了一些选择器,这是此更新测试的新链接:http://jsfiddle.net/8Knxk/4/

3- 使用标签名称 $("div") ==> 666 毫秒

4- 仅使用类名 $(".normal_box") ==> 762 ms

我想你现在更清楚了:)

关于jQuery 按类选择 VS 按属性选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6533285/

相关文章:

python - 性能:Python pandas DataFrame.to_csv append 逐渐变慢

performance - typescript 遍历键入的对象键

jquery - 如何在上下文中选择具有指定类名的直接子级

javascript - jquery中刷新DataTable插件表

performance - Excel/VBA 检查一行是否存在

javascript - 如何为多个 div 创建水平幻灯片

css-selectors - 为什么 cypress 无法识别我们是否给出完整的类名

javascript - 仅选择没有子元素的元素,除了子元素是 <wbr></wbr> 的元素

javascript - 在 Chrome 中使用高 CPU 的 Canvas

javascript - 检测对背景大小 : cover 的支持