“:eq()”和.eq()之间的区别

时间:2013-12-15 07:55:39

标签: jquery

我最近开始学习jQuery。考虑到以下html结构,我想知道,选择器$('ul>li:eq(2)')$('ul>li').eq(2)之间的基本区别是什么。

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

2 个答案:

答案 0 :(得分:11)

他们做同样的事情,但其中一个明显变慢:http://jsperf.com/eq-vs-eq

:eq()不是CSS伪选择器,它使第一个选择器成为jQuery选择器。因此,它必须由Sizzle选择器库解析,该库是用JavaScript编写的。

第二个是常规CSS选择器,将直接传递到document.querySelectorAll,这是本地实现的,最终运行得更快。

答案 1 :(得分:1)

除性能外,它们之间基本没有区别。 jQuery有许多方法等同于选择器。