那么我应该选择哪些元素呢?我使用复选框作为示例,此问题涉及所有表单元素。
实际上,当我们参与其中时,其中哪一项更快:
li:first
或
li:eq(0)
答案 0 :(得分:8)
虽然在语义上:
$(':checkbox')
相当于$('[type=checkbox]')
实际上说:
因为
:checkbox
是jQuery扩展而不是CSS的一部分 规范,使用:checkbox
的查询无法利用 本机DOM提供的性能提升querySelectorAll()
方法。要在现代浏览器中获得更好的性能,请使 而是[type="checkbox"]
。
请务必阅读相关文档。这会让您的生活变得更轻松,而且我们的生活更轻松。
答案 1 :(得分:1)
您可以在this testcase中看到自己的效果差异。
在目前为止测试的浏览器中,:checkbox
要慢得多。
对于问题的第二部分:使用:first
或:eq(0)
doesn't seem to make much difference。
答案 2 :(得分:0)
不同的浏览器实现方式不同。选择一个对所有人都适用的答案是不可能的。不同大小的页面甚至可能会改变答案。您需要测试代码中的性能问题,并修复找到的问题。这些简单选择器之间的差异极不可能是一个问题。