jQuery选择器的区别

时间:2012-05-04 18:14:31

标签: jquery jquery-selectors

我在DOM中有这个元素:<div id="main" class="main"></div>。通过$('#main')和$('。main:first')选择元素之间有什么区别吗?

编辑: 忘记提到这是假设这个元素是classname“main”的唯一元素。

4 个答案:

答案 0 :(得分:3)

  

编辑:忘记提及这是假设此元素是类名为“main”的唯一元素。

没有区别,因为只有一个.main,因此按$('#main')$('.main')进行选择会返回相同的结果。

在性能方面,你可以忽略它,除非你使用高保真动画或巨大的DOM操作。

$('#main') - 更快,更整洁,更有效率

$('.main:first') - 与ID选择器相比,类选择器速度较慢,:first过滤器速度较慢。

- &GT;您不需要:first,只需$('.main')即可返回所需的结果。

其他选项 -

$('.main') - 比ID选择器慢

$('div.main') - 比ID选择器更慢仍然比$('。main')更好

证明 - http://jsperf.com/jquery-class-vs-id-v2

答案 1 :(得分:1)

是。如果该元素不是具有类main的第一个元素,那么它将不会被选中。

答案 2 :(得分:1)

$(“#main”)可能会更快一些,因为它使用了ID。

此外,如果您在原始类之前添加.main类的另一个元素,那么它将失败。

答案 3 :(得分:0)

ID选择器更强大,因为jQuery遍历DOM ID应该是唯一的(每个视图只有1个),而你可以有多个主类。