我有一个父元素,包含很多子元素(1000s)。我正在寻找最快的方法来获取最后一个子元素的句柄。我发现的选项是:
$('.parent .child').last()
和
$('.parent .child:last')
有关浏览器中哪一个可靠地更快的任何意见?
修改
我在jsfiddle中编写了一个测试来测量它,结果发现差异几乎可以忽略不计。尽管.last()的表现更好,但差异可以忽略不计。所以我认为即使使用:last选择器,它实际上是获取整个元素列表然后返回最后一个元素?难以置信的。
答案 0 :(得分:5)
许多现代浏览器支持 在后者中, 总的来说,我会使用你认为最具可读性的东西。要开始优化此操作,请首先确保您的应用程序存在性能问题,并确定此选择器已成为瓶颈。document.querySelectorAll()
,因此$('.parent .child').last()
应该更快,因为选择器字符串可以按传递,然后弹出最后一个匹配的项目。< / p>
:last
不是标准的伪选择器,Sizzle必须开始分块选择器字符串才能开始匹配。
答案 1 :(得分:1)
你必须看到这个performance test!
更新:related question已经有了很好的答案。