我想知道.filter(':last')
和.last()
之间是否有区别?.filter(':last')与.last()
对我来说,它看起来像他们一样,但我是新来的jQuery。如果结果没有差异,推荐哪一个,或者只是个人偏好的问题?
我想知道.filter(':last')
和.last()
之间是否有区别?.filter(':last')与.last()
对我来说,它看起来像他们一样,但我是新来的jQuery。如果结果没有差异,推荐哪一个,或者只是个人偏好的问题?
last
通过说“给我选择的最后一个元素”。它只需要两个函数调用和四行代码即可完成。它不能以更快的方式完成。然而,更复杂的是,这是一个更灵活的系统,允许多个元素被返回,如果这是你想要的,或多个条件,或两者的混合物。它效率低得多,因为它必须制定出你想要的。例如,解析':last'
需要一点时间,而使用last
函数则是一个简单的属性查找。
last
到目前为止效率更高。
:last
- 选择最后一个匹配的元素。
last()
- 将匹配元素的集合减少到集合中的最后一个元素。
正如你所看到的,他们做同样的事情(就最终结果而言,无论如何)。
last()
is slightly faster than :last(虽然你可能没有注意到它,但它总是很好的知道)。
.filter(":last")
,虽然作出最佳(性能明智)出:last
,还涉及到更多的函数调用和仍比last()
慢 - 虽然它确实有它的优势(见@lonesomeday的回答那些)。
然而,我的建议是一般使用last()
而不是前者。
@lonesomeday对不起,我应该睡一会儿.. – lifetimes
他们做同样的事情,对于大多数情况下,你永远不会注意到它们之间的差异。 – adeneo
第一个操作所有元素,针对每个元素运行非标准选择器。第二个只抓取jQuery对象的最后一个元素,并将其返回到一个新对象中。 –