CSS 或 jQuery 选择器? [关闭]

Posted

技术标签:

【中文标题】CSS 或 jQuery 选择器? [关闭]【英文标题】:CSS or jQuery selector? [closed] 【发布时间】:2015-07-19 08:39:46 【问题描述】:

假设有以下 html

<div id="test">
   <span class="testSpan"></span>
</div>

#test div 中选择span 有两种方法

我知道我可以直接选择跨度,但这不是问题的重点):

$('#test > .testSpan');

$('#test').find('.testSpan');

就速度、浏览器兼容性或其他方面而言,以下哪种方式最优化?

还是没有区别?

【问题讨论】:

也许您应该阅读以下内容:learn.jquery.com/performance/optimize-selectors 第一个示例非常适合您的问题:The .find() approach is faster because the first selection is handled without going through the Sizzle selector engine – ID-only selections are handled using document.getElementById(), which is extremely fast because it is native to the browser. jsperf.com/css-or-jquery 【参考方案1】:

如果您会看到JSPERF test,那么您会发现.find() 绝对是更好更快的方法。

实际上.find() 将选择所有匹配的后代元素(即子元素、子元素的子元素等...),而&gt; 是直接子元素选择器(即,它将获取直接子元素)。

【讨论】:

虽然您的答案是正确的,但您能否将一些统计数据与您的答案保持一致?否则,此答案取决于外部资源的存在,并且在该资源跌落或被移动的情况下,它只不过是一个未经证实的断言。 @DavidThomas:- 更新了!

以上是关于CSS 或 jQuery 选择器? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

跨度内跨度的 CSS 或 jQuery 选择器

元素的Javascript选择器/非CSS选择器[关闭]

在 CSS 选择器中使用 & [关闭]

jQuery的一些选择器

jQuery 选择器

jQuery 选择器