【发布时间】:2011-04-18 10:08:31
【问题描述】:
受Help understanding JQuery Attribute Equals Selector启发,问题是:
哪一个更高效?
$('#FOO element.BAR[attr=BAZ]')
或
$('#FOO element[attr=BAZ].BAR')
是的,我们可以省略最初的 #FOO 选择器,但这个问题特别问这个问题,所以......所以
另外,虽然我上面的语法使用了 jQuery,但这只是因为我可以方便地保留它。 在 CSS 文档中会发现相同的语法,不是吗? 显然不一样,那么让我们将其限制为 jQuery?
【问题讨论】:
-
"在 CSS 文档中可以找到相同的语法,不是吗?"是的,但它通常是一个完全不同的实现(如果使用querySelectorAll 除外),所以你应该将你的问题限制在 jQuery 上。
-
@Matthew Flaschen ~ 你能解释一下吗?完全不同的实现,你是指 DOM 解析器吗?
-
CSS 解析器和用于确定哪些 DOM 元素匹配哪些选择器不同的代码。
-
@Matthew Flaschen ...因此我的好奇心和问题;)
-
您在问哪个更有效,但我的意思是,这实际上(至少)是两个不同的问题。可能#1 对 jQuery 的选择器引擎更有效,但当浏览器直接将其解释为 CSS 时,#2 更有效。或相反亦然。当然,这也取决于哪个浏览器。
标签: jquery-selectors performance