我在 DOM 中有这个元素:<div id="main" class="main"></div>
. 通过 $('#main') 和 $('.main:first') 选择元素有什么区别吗?
编辑:忘了提到这是假设这个元素是唯一具有类名“main”的元素。
我在 DOM 中有这个元素:<div id="main" class="main"></div>
. 通过 $('#main') 和 $('.main:first') 选择元素有什么区别吗?
编辑:忘了提到这是假设这个元素是唯一具有类名“main”的元素。
编辑:忘了提到这是假设这个元素是唯一具有类名“main”的元素。
没有区别,因为只有一个.main
,因此选择$('#main')
or$('.main')
会返回相同的结果。
在性能方面有但你可以忽略它,除非你使用高保真动画或巨大的 DOM 操作。
$('#main')
- 更快、更整洁、更高效
$('.main:first')
- 类选择器比 ID 选择器慢,:first
过滤器慢。
-> 你不需要:first
,只会$('.main')
返回你想要的结果。
其他选项-
$('.main')
- 比 ID 选择器慢
$('div.main')
- 比 ID 选择器慢,仍然比 $('.main') 好
是的。如果该元素不是该类的第一个元素,则main
不会选择该元素。
$("#main") 可能会快一点,因为它使用了 ID。
此外,如果您在原始元素之前添加另一个带有 .main 类的元素,那么它将失败。
ID 选择器更强大,因为 jQuery 遍历 DOM ID 应该是唯一的(意味着每个视图只有 1 个),而您可以有多个主类。