哪个更快:$(“li”)。last()或$(“li:last-child”)?

时间:2012-03-12 07:58:14

标签: jquery

在jQuery中,执行速度更快:$("li").last()$("li:last-child")

2 个答案:

答案 0 :(得分:10)

虽然两者在他们所做的事情上有所不同,但这是我从jsperf得到的结果:

http://jsperf.com/li-last-vs-li-last-child

enter image description here

<强> $( “里”)。最后()

28,752
±8.59%
fastest

$( “李:最后的孩子”)

21,930
±4.01%
24% slower

所以$("li").last()更快。


FYI $("li").last()选择绝对最后一个元素,而$("li:last-child")选择 每个 一系列分组元素中的最后一个元素。这也很明显$("li").last()应该更快。

答案 1 :(得分:4)

两者不等同。

.last()将始终返回单个元素; :last-child可能匹配多个元素,如果每个元素具有不同的父元素(因此是其相应父元素的最后一个子元素)。

也就是说,.last()如果你只选择一个父元素就可以稍快一些。