我正在阅读 jQuery API,关于偶数选择器,jQuery 建议我们使用纯 CSS 选择器选择元素列表,然后使用filter(":even")
以获得更好的性能。但我认为 jQuery 也针对他们的:even
选择器进行了优化。当我使用任何选择器时,它在同一时间给了我相同的结果。只有当我们拥有超过 100 万个元素时,它才会有所不同吗?有人可以解释:even
选择器的工作原理以及为什么使用filter(":even")
更好吗?
谢谢, Tho Vo
我正在阅读 jQuery API,关于偶数选择器,jQuery 建议我们使用纯 CSS 选择器选择元素列表,然后使用filter(":even")
以获得更好的性能。但我认为 jQuery 也针对他们的:even
选择器进行了优化。当我使用任何选择器时,它在同一时间给了我相同的结果。只有当我们拥有超过 100 万个元素时,它才会有所不同吗?有人可以解释:even
选择器的工作原理以及为什么使用filter(":even")
更好吗?
谢谢, Tho Vo
Why not test it? http://jsperf.com/even-selector
If you're looking for something fast, use :nth-child(even)
, as it's a native selector and can be fed into document.querySelectorAll
. :even
is a jQuery-specific pseudo-selector and forces jQuery to traverse the DOM using JavaScript, which will almost always be slower than document.querySelector
.
您可以在此处找到性能测试。正如您在结果中看到的 filter('even') 更快,尽管它仅在大数据中才会引人注目。