2013-12-15 87 views
9

我最近開始學習jQuery。考慮到以下html結構,我想知道,選擇器$('ul>li:eq(2)')$('ul>li').eq(2)之間的基本區別是什麼。「:eq()」和.eq()的區別

<ul> 
    <li>one</li> 
    <li>two</li> 
    <li>three</li> 
    <li>four</li> 
    <li>five</li> 
</ul> 

回答

11

他們做同樣的事情,而是一個顯著慢是:http://jsperf.com/eq-vs-eq

:eq()不是CSS僞選擇,這使得第一選擇一個jQuery選擇。因此,它必須由用JavaScript編寫的Sizzle選擇器庫進行分析。

第二個是一個常規的CSS選擇器,將直接傳遞到document.querySelectorAll,這是本地實現的,最終運行速度會更快。

1

他們之間基本上沒有區別,除了表現。 jQuery有很多方法等價於選擇器。