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 - 後代的不同選擇器?
- 12. jquery後代選擇器問題
- 13. CSS選擇器後代選擇器
- 14. 使用jQuery選擇父母后的div
- 15. jQuery/CSS後代選擇器選擇太多
- 16. CSS3選擇器選擇父
- 17. JQuery父子選擇
- 18. jQuery的父()( 「選擇」)
- 19. JQuery的父()選擇
- 20. 的jQuery選擇父
- 21. jquery最後選擇選擇器的值
- 22. 後代選擇器很慢?
- 23. jquery使用:選擇器後
- 24. jquery live on:選擇器後
- 25. 替代jQuery .closest()選擇器
- 26. 使用節點選擇祖父母選擇它的後代
- 27. jQuery選擇器 - 父母問題
- 28. jquery中的父類選擇器
- 29. 親代後代jquery選擇器的奇怪錯誤
- 30. CSS選擇器 - 如果child class =?然後選擇父
是嗎?打敗我。 – David 2010-08-18 18:54:24