我在DOM中有这个元素:<div id="main" class="main"></div>
。通过$('#main')和$('。main:first')选择元素之间有什么区别吗?
编辑: 忘记提到这是假设这个元素是classname“main”的唯一元素。
答案 0 :(得分:3)
编辑:忘记提及这是假设此元素是类名为“main”的唯一元素。
没有区别,因为只有一个.main
,因此按$('#main')
或$('.main')
进行选择会返回相同的结果。
在性能方面,你可以忽略它,除非你使用高保真动画或巨大的DOM操作。
$('#main')
- 更快,更整洁,更有效率
$('.main:first')
- 与ID选择器相比,类选择器速度较慢,:first
过滤器速度较慢。
- &GT;您不需要:first
,只需$('.main')
即可返回所需的结果。
其他选项 -
$('.main')
- 比ID选择器慢
$('div.main')
- 比ID选择器更慢仍然比$('。main')更好
答案 1 :(得分:1)
是。如果该元素不是具有类main
的第一个元素,那么它将不会被选中。
答案 2 :(得分:1)
$(“#main”)可能会更快一些,因为它使用了ID。
此外,如果您在原始类之前添加.main类的另一个元素,那么它将失败。
答案 3 :(得分:0)
ID选择器更强大,因为jQuery遍历DOM ID应该是唯一的(每个视图只有1个),而你可以有多个主类。