为什么1比2快?
$('#p1').find('span');
$('#p1 span');
答案 0 :(得分:1)
最好的方法是测试!
通过这个简单的测试:
<p id="p1"><span>Test</span></p>
版本:jQuery 1.4.2
$('#p1').find('span');
:2601ms
$('#p1 span');
:1998ms 在这种情况下,单选择器似乎更快,因为你没有通过jQuery进行多次调用,这是有道理的。
Give it a try here, look at your console
在cae中,你在jQuery 1.3.2上就是这些结果:
$('#p1').find('span');
:3225ms $('#p1 span');
:2082ms 答案 1 :(得分:1)
在jQuery 1.4中,检查选择器是否是id
选择器(如#p1
)。
document.getElementId(...)
并将结果包装在jQuery实用程序对象中并返回。 答案 2 :(得分:0)
在你的情况下,也许#1比#2更快,但是根据搜索的次数和搜索的元素数量,#2在其他情况下可能比#1更快。
例如:我猜如果你在span
中有3个#p1
元素而没有其他元素,那么#1会比#2快,因为find并没有尝试做那么多的CSS匹配。但是,如果你在span
中有1000个#p1
元素以及2000个其他元素,我敢打赌#2会更快,因为它不必迭代每个元素两次。