我想知道.filter(':last')
和.last()
之间是否存在差异?
对我而言,看起来他们也在做同样的事情,但我是jQuery的新手。如果结果没有差异,建议使用哪一个,还是个人偏好?
答案 0 :(得分:6)
last
的作品是“给我选择中的最后一个元素”。它只需要两个函数调用和四行代码。它不能以更快的方式完成。
filter(':last')
要复杂得多。它是一个更灵活的系统,允许返回多个元素,如果这是您想要的,或多个条件,或两者的混合。效率低得多,因为它必须找出你想要的东西。例如,解析':last'
需要一点时间,而使用last
函数则是一个简单的属性查找。
last
到目前为止效率更高。
答案 1 :(得分:2)
:last
- 选择最后匹配的元素。
last()
- 将匹配元素集减少到集合中的最后一个元素。
正如您所看到的,他们做同样的事情(无论如何,最终结果)。
last()
is slightly faster than :last(虽然您可能不会注意到它,但总是很高兴知道)。
.filter(":last")
,虽然从:last
中做出最佳(性能方面)仍然涉及更多函数调用,但仍然比last()
慢 - 尽管它确实有其优点(参见@lonesomeday的答案)。
然而,我建议通常使用last()
而不是前者。