开发技巧:使用标签名更快地选择元素
jQuery 提供了一个极其通用的 DOM 查询机制。如果你想知道幕后发生了什么,以及是否有更低效和更高效的方式来构建你的查询...答案是肯定的。在许多情况下,你可以通过指定标签名来帮助 jQuery,例如:
$("div.class").show()
比
$(".class").show()
...更快,区别在于查询引擎可以先按标签名进行缩小范围。它很聪明。
因此,你应该养成指定标签名的习惯。唯一的例外:按 ID 获取。如果你按 ID 获取,不要包含标签名,也不要包含除 ID 选择器之外的任何其他内容。
请注意,这里的第二个示例(仅包含类选择器)是完全有效的,如果你需要查询多个元素类型,请随时进行 - jQuery 仍然会返回正确的结果。
哈哈。我在 IE7 脚本中遇到了同样的事情。并不是每个人都意识到在幕后有很多 DOM 调用,这些调用速度并不快。我最终写了这个
http://dean.edwards.name/IE7/usage/optimise.html
如果元素选择器层次结构在 $() 函数查询中更直接地指定,jQuery 的性能也会更快吗?
例如
$(‘#content dl dt a’) 与 $(‘#content dt a’)
谢谢你的建议。
Joe K:在这种情况下,指定的越少,速度越快。
$(“#foo a”)
总是比
$(“#foo div a”)
Klaus Hartl 在他的 Tab 插件中使用“el>el”是否获得了更好的 jQuery 性能?
相关问题,有人知道如果你的样式表结构相似,浏览器是否会更快地实现 CSS?例如 element.class 而不是 .class。
显然,当涉及到样式表结构时,只使用类名会更容易,这样你就可以一目了然地知道样式的用途!
Chris