CSS和jQuery选择器速度

在jQuery中,每当遇到这样的事情:
$("div#MyDiv").....

我一般对开发者说:“不要把div放在#MyDiv的前面,ID选择器是最快的.”即

$("#MyDiv")....

这是因为后者将直接钩入document.getElementById,而不必扫描所有< div>的DOM.元素第一.

我的问题是,同样的规则适用于CSS选择器吗?即而不是:

div#MyDiv
{
}

简单来说是更快吗?

#MyDiv
{
}

(我意识到,CSS选择器是非常快的反正,所以在现实中也不会有显着差异.)

非常感谢

编辑

任何链接或引用可能对本讨论的目的有用.谢谢 :-)

解决方法

我会说,它是不太可能使任何现实世界的区别.在理论上,是的,需要少一个检查(因为div#foo真的需要一个div来匹配选择器,根据 the spec).但是在现实世界的浏览器应用程序中,它的几率有何不同呢?接近零.

也就是说,当我在HTML应用程序中看到像div#foo这样的东西时,我总是很沮丧. HTML只有一个ID类型属性(id),因此不需要进一步的资格.您使CSS选择器引擎(浏览器或jQuery的)更难以弄清楚您的意思,使选择器变得脆弱(例如,如果div成为页脚)等等,当然您也可以自己打开到一个stoopid选择器实现,无法识别它可以看看ID的东西,然后检查,看看它是否是一个div,所以去查看所有的div. (这样的实现是否存在?可能,你永远不会知道.)除了一些边缘案例,总是让我认为某人不太了解他们在做什么.

所以对我来说,速度不是主要的论据.无意义是.

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效