gpt4 book ai didi

jQuery 选择器性能 : $ ('#a p' ) versus $ ('p' , $context) 与 $context.find ('p' )

转载 作者:行者123 更新时间:2023-12-01 02:35:52 26 4
gpt4 key购买 nike

如果我已经在我的变量 $a_div 中获得了以下标记中 DIV 的 jQuery 对象,并且我想找到 Ps

<div id="a">
...
<p>...</p>
...
</div>

这些在 DIV 中选择 P 元素的方法之间是否存在显着的性能差异?

$('#a p')
$('p', $a_div)
$a_div.find('p')

如果是这样,你知道为什么吗?

最佳答案

这类事情通常取决于浏览器,但我会使用第三个。

第一个,具有 querySelectorAll 的浏览器将使用它,因此性能应该很好。

在不支持qsa的浏览器中,我认为Sizzle会找到页面上的所有 p元素,并遍历它们的祖先来查看如果有 #a 元素。

$('#a p')
<小时/>

我根本不会使用第二个,因为它会在后台更改为第三个。

$('p', $a_div)   // becomes $a_div.find('p')
<小时/>

无论是通过 querySelectorAll 还是 getElementsByTagName,您都是从 DOM 中的已知点开始,并且仅在其中进行搜索,所以我敢打赌,这通常会最快。

$a_div.find('p')

关于jQuery 选择器性能 : $ ('#a p' ) versus $ ('p' , $context) 与 $context.find ('p' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6398124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com