2013-12-15 8 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()は、第1のセレクタjQueryのセレクタを作るCSS擬似セレクター、ではありません。したがって、それはJavaScriptで書かれたSizzleセレクタライブラリによって解析されなければなりません。

2番目のCSSセレクタは通常のCSSセレクタで、document.querySelectorAllに直接渡されます。これはネイティブで実装されているため、はるかに高速に実行されます。

1

パフォーマンスを除いて、基本的に違いはありません。 jQueryには、セレクタに相当する多くのメソッドがあります。

関連する問題