1
A
回答
1
在jQuery 1.4中,檢查選擇器是否是id
選擇器(如#p1
)。
- 如果確實如此,調用
document.getElementId(...)
並將結果包裝在jQuery實用程序對象中並返回。 - 如果除此之外的任何東西,jQuery調用Sizzle,然後它會執行任何操作來查找元素。而從源頭來看,這是非常不平凡的東西。
1
,最好的辦法是測試!
從這個簡單的測試:
- 內容 -
<p id="p1"><span>Test</span></p>
- 循環100,000次
版本:jQuery的1.4.2
$('#p1').find('span');
:2601ms$('#p1 span');
:1998ms
看起來,在這種情況下單個選擇器更快,因爲你沒有通過jQuery進行多次調用,這是有道理的。
Give it a try here, look at your console。
在CAE你介紹jQuery 1.3.2這裏的那些結果:
$('#p1').find('span');
:3225ms$('#p1 span');
:2082ms
+0
+1爲jsFiddle – Homer 2010-08-26 19:50:08
0
就你而言,#1可能比#2更快,但取決於有多少迭代以及要搜索多少個元素,#2在其他情況下可能比#1更快。
例如:我猜如果你在#p1
中有3 span
元素而沒有其他元素,那麼#1會比#2更快,因爲find並沒有試圖做盡可能多的CSS匹配。但是,如果您有1000 span
元素以及#p1
中的2000個其他元素,我會下注#2會更快,因爲它不必遍歷每個元素兩次。
相關問題
- 1. jQuery父選擇器
- 2. JQuery縮寫多個父代選擇器
- 3. jQuery - 在選擇器內選擇父項
- 4. 父親的jQuery選擇器
- 5. jQuery - 父母選擇器
- 6. jquery選擇器:父問題
- 7. Jquery父子選擇器
- 8. 選擇器jquery後
- 9. jQuery - 後代的不同選擇器?
- 10. jquery後代選擇器問題
- 11. 使用jQuery選擇父母后的div
- 12. jQuery/CSS後代選擇器選擇太多
- 13. JQuery的父()選擇
- 14. jQuery的父()( 「選擇」)
- 15. jquery最後選擇選擇器的值
- 16. jquery live on:選擇器後
- 17. 使用節點選擇祖父母選擇它的後代
- 18. jquery中的父類選擇器
- 19. jQuery選擇器 - 父母問題
- 20. CSS選擇器 - 如果child class =?然後選擇父
- 21. 使用jQuery選擇器從父類CLASS選擇孩子
- 22. jquery選擇器 - 選擇父母但不是孩子
- 23. 添加父的jQuery選擇
- 24. jQuery選擇了.parent()父()
- 25. jQuery的:選擇問題(父)
- 26. JQuery的父ID選擇
- 27. PHP,jQuery的,選擇父DIV
- 28. jQuery:選擇祖父母
- 29. 的jQuery選擇父問題
- 30. CSS性能 - 後代選擇器與類選擇器
是嗎?打敗我。 – David 2010-08-18 18:54:24