我想知道.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對象的最後一個元素,並將其返回到一個新對象中。 –