亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery中最快的子()或find()是什么?

jQuery中最快的子()或find()是什么?

慕少森 2019-07-11 16:11:03
jQuery中最快的子()或find()是什么?要在jQuery中選擇子節點,可以使用子節點(),也可以使用find()。例如:$(this).children('.foo');得出的結果與:$(this).find('.foo');現在,哪個選項是最快的還是首選的?為什么?
查看完整描述

3 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

children()只查看節點的直接子節點,而find()遍歷節點下面的整個DOM,因此children()給定相應的實現,速度更快。然而,find()使用土生土長瀏覽器方法,同時children()使用JavaScript在瀏覽器中解釋。在我的實驗中,在典型的情況下,性能沒有太大的差別。

使用哪種方法取決于您是否只想考慮DOM中的直接后代或該節點下面的所有節點,也就是說,根據您想要的結果選擇適當的方法,而不是方法的速度。如果性能確實是一個問題,那么就嘗試找到最好的解決方案并使用它(或者在這里的其他答案中看到一些基準)。


查看完整回答
反對 回復 2019-07-11
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

這,這個jsPerf試驗表明find()更快。我創建了一個更徹底的測試,而且看起來find()仍然比子()更好。

最新情況:根據tvanfosson的評論,我創建了另一個測試用例有16個層次的筑巢。find()只在找到所有可能的div時比較慢,但find()在選擇第一級div時仍然優于子級。

當嵌套級別超過100個時,子級()開始優于find(),并且大約有4000+div來遍歷find()。這是一個基本的測試用例,但在大多數情況下,我仍然認為find()比child()更快。

我在ChromeDeveloper工具中瀏覽了jQuery代碼,注意到子()在內部調用兄弟()、filter(),并經歷了比find()更多的regexe。

find()和child()滿足不同的需求,但是在find()和子()輸出相同結果的情況下,我建議使用find()。


查看完整回答
反對 回復 2019-07-11
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

這并不一定會產生同樣的結果:find()會給你帶來什么后人節點,而children()只會讓你直系親屬那個火柴。

有一次,find()速度要慢得多,因為它必須搜索可能匹配的每個子節點,而不僅僅是直接的子節點。然而,這已不再是事實;find()由于使用本機瀏覽器方法,速度要快得多。


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 544 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號