2013-12-15 3 views
9

Я недавно начал изучать jQuery. Учитывая структуру html follwing, я хочу знать, какова основная разница между селекторами $('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. Поэтому он должен быть проанализирован библиотекой селекторов Sizzle, которая написана на JavaScript.

Второй является обычным селектором CSS и будет передаваться непосредственно в document.querySelectorAll, который реализован изначально и будет работать намного быстрее.

1

По существу, нет никакой разницы между ними, кроме как при исполнении. jQuery имеет много методов, которые эквивалентны селекторам.

Смежные вопросы