2013-12-15 15 views
9

Ich habe vor kurzem begonnen, jQuery zu lernen. In Anbetracht der folgenden HTML-Struktur möchte ich wissen, was ist der grundlegende Unterschied zwischen Selektoren $('ul>li:eq(2)') und $('ul>li').eq(2).Unterschied zwischen ": eq()" und. Eq()

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

Antwort

11

Sie das gleiche tun, aber man ist deutlich langsamer: http://jsperf.com/eq-vs-eq

:eq() kein CSS Pseudo-Selektor, der den ersten Selektor ein jQuery-Selektor macht. Daher muss es von der Sizzle-Selektorbibliothek analysiert werden, die in JavaScript geschrieben ist.

Die zweite ist eine reguläre CSS-Selektor und wird direkt in document.querySelectorAll übergeben, die nativ implementiert ist und am Ende viel schneller läuft.

1

Es gibt im Wesentlichen keinen Unterschied zwischen ihnen, außer in der Leistung. jQuery verfügt über viele Methoden, die Selektoren entsprechen.