1

私はDOMにこの要素を持っています:<div id="main" class="main"></div>。$('#main')と$('。main:first')で要素を選択することに違いはありますか?

編集:これは、この要素がクラス名「main」を持つ唯一の要素であると想定していることを言及するのを忘れました。

4

4 に答える 4

3

編集:これは、この要素がクラス名「main」を持つ唯一の要素であると想定していることを言及するのを忘れました。

1つしかないため、違いはありません。またはを.main選択すると、同じ結果が返されます。$('#main')$('.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 に答える