.filter(':last')vs. .last()

时间:2013-06-12 22:05:42

标签: javascript jquery performance filter

我想知道.filter(':last').last()之间是否存在差异?

对我而言,看起来他们也在做同样的事情,但我是jQuery的新手。如果结果没有差异,建议使用哪一个,还是个人偏好?

2 个答案:

答案 0 :(得分:6)

last的作品是“给我选择中的最后一个元素”。它只需要两个函数调用和四行代码。它不能以更快的方式完成。

然而,

filter(':last')要复杂得多。它是一个更灵活的系统,允许返回多个元素,如果这是您想要的,或多个条件,或两者的混合。效率低得多,因为它必须找出你想要的东西。例如,解析':last'需要一点时间,而使用last函数则是一个简单的属性查找。

last到目前为止效率更高。

答案 1 :(得分:2)

  

:last - 选择最后匹配的元素。

     

last() - 将匹配元素集减少到集合中的最后一个元素。

正如您所看到的,他们做同样的事情(无论如何,最终结果)。

last() is slightly faster than :last(虽然您可能不会注意到它,但总是很高兴知道)。

.filter(":last") ,虽然从:last中做出最佳(性能方面)仍然涉及更多函数调用,但仍然比last()慢 - 尽管它确实有其优点(参见@lonesomeday的答案)。

然而,我建议通常使用last()而不是前者。