【发布时间】:2011-05-04 22:42:24
【问题描述】:
每当我遇到这样的事情时,在 jQuery 中:
$("div#MyDiv").....
我通常对开发人员说:“不要费心把div 放在#MyDiv 前面,ID 选择器是最快的。”即
$("#MyDiv")....
这是因为后者将直接挂钩到 document.getElementById,而不是必须先扫描 DOM 中的所有 <div> 元素。
我的问题是,相同的规则是否适用于 CSS 选择器? IE。而不是:
div#MyDiv
{
}
简单是不是更快?:
#MyDiv
{
}
(我意识到 CSS 选择器无论如何都非常快,所以实际上两者都不会产生显着差异。)
非常感谢
编辑
任何链接或参考都可能对本次讨论有用。谢谢:-)
【问题讨论】:
-
考虑以下情况:$("......").find("#foo")。哎哟。突然间,这些断言冲破了屋顶(虽然我不知道这种情况实际上是如何工作的。)无论如何,上面的两个 CSS 规则具有不同的优先级(带有标签的表单只是稍微高一点)。
-
@pst - 不确定我是否遵循。你能扩展吗?
-
考虑元素尚未附加到文档的情况。 ( jQuery 如何处理这个问题?不过与最后一个问题无关。)
标签: jquery css jquery-selectors css-selectors