性能明智哪一个更好:
$(".myclass").eq(0)
OR
$("a.myclass")
注意:如果只有一个<a>
代码包含.myclass
。
答案 0 :(得分:19)
第二种 - 尽可能使用标签名称(参见jQuery performance rules的规则2)。
答案 1 :(得分:6)
第二,因为它可以使用在C / C ++中实现的浏览器document.getElementsByTagName()
函数,而不是Javascript。
此外,如果只有a
.myclass
$('#myid')
,请考虑在其上添加ID并执行document.getElementById()
。通过id获取是最快的方式。它使用{{1}},再次用C / C ++实现。
答案 2 :(得分:1)
如需了解更多信息,请参阅第19页幻灯片中的Paul Irish's Anti-patterns。
如果可以,请始终从ID下载。在右边更具体,在左边更一般。
有一个基于jquery的速度分析器可以让你测试这个以查看实际的速度差异,但我找不到它...
答案 3 :(得分:1)
使用萤火虫很容易描述这些东西。
console.profile();
jQuery('#id');
console.profileEnd();
有时候,这取决于你的dom /你的目标浏览器等等,而不是依赖于“最佳实践”。始终在本地进行分析,看看什么效果最好。