我只是想征求一下性能方面的意见: 使用 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/