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

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

 
  • one
  • two
  • three
  • four
  • five

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

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

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

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