1

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

编辑:忘了提到这是假设这个元素是唯一具有类名“main”的元素。

4

4 回答 4

3

编辑:忘了提到这是假设这个元素是唯一具有类名“main”的元素。

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

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

$('#main')- 更快、更整洁、更高效

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

-> 你不需要:first,只会$('.main')返回你想要的结果。

其他选项-

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

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

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

于 2012-05-04T18:18:59.403 回答
1

是的。如果该元素不是该类的第一个元素,则main不会选择该元素。

于 2012-05-04T18:16:02.050 回答
1

$("#main") 可能会快一点,因为它使用了 ID。

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

于 2012-05-04T18:16:41.927 回答
0

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

于 2012-05-04T18:16:44.490 回答