如果我知道DOM中至多有1個這樣的對象,我應該總是追加:首先加載選擇器以加速查找?我假設選擇引擎一找到1個匹配元素就會停下來,但我不確定過濾器是否真的讓事情變慢了一點。確實指出:首先在jQuery選擇器幫助性能?
回答
不,因爲:first
不是標準的CSS僞類,並且使用它會導致您的選擇器不會被傳遞到本地querySelectorAll()
支持瀏覽器實現的DOM函數(假設您不使用任何其他僅用於jQuery的選擇器語法)。
jQuery將採用整個選擇器並自行解析(最有可能使用Sizzle),這比讓瀏覽器執行工作慢得多。
當然,它不會太慢,人眼可以觀察到它,但理論上**它會損害性能而不是幫助。再次,這隻適用於瀏覽器的CSS引擎支持選擇器,因此'querySelectorAll()'。 – BoltClock 2011-05-18 19:29:08
給你的評論:如果你嘗試調試一個頁面,其中使用':first'僞類選擇器,就Developer Tools of Chrome而言,你可以在「腳本」選項卡中啓用「暫停未捕獲的例外」按鈕(在底端)。在使用':first'的每個選擇中,您會在'querySelectorAll'中看到異常(請參見[here](http://www.trirand.com/blog/?page_id=393/bugs/small-performance-improvements-in-selector) /#p26631))。在很多情況下,':first'可以快速替換爲':first-child'或':n-type-1(1)'。 ':first'的一個用法並不是很慢,但是在循環中可以填充不同。 – Oleg 2012-06-07 20:27:12
一種做法幾乎如此;您指定的選擇器越多,引擎驗證的就越多。
因此,就你而言,如果你知道它只有一個,不要指定它。
但是在下面的聲明中,比如100,你甚至不會注意到它。
- 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. jQuery選擇幫助
- 14. jQuery選擇幫助
- 15. 幫助jQuery選擇
- 16. jQuery選擇幫助
- 17. 幫助在jQuery選擇
- 18. 幫助在jQuery選擇
- 19. 幫助在jQuery選擇
- 20. css選擇器的幫助jquery
- 21. jQuery選擇器。幫助新手
- 22. jQuery on()需要選擇器幫助
- 23. 幫助一個JQuery選擇器?
- 24. 幫助理解jQuery選擇器示例
- 25. jQuery的選擇幫助
- 26. 幫助的jQuery選擇
- 27. jQuery的(本)選擇幫助
- 28. :首先選擇在CSS
- 29. 幫助與CSS選擇器(jQuery日期選擇器)
- 30. jQuery選擇器性能
我對此表示懷疑。我會想象它會獲取所有元素,然後檢查它們是否是父容器中的第一個元素。 (從右到左)。 – Raynos 2011-05-18 19:24:48