私はこの要素をDOM内に持っています:<div id="main" class="main"></div>
。 $( 'main')と$( 'main:first')で要素を選択するのに違いはありますか?jQueryセレクタの相違点
EDIT: これは、この要素がクラス名が "main"の唯一の要素であることを前提としています。
私はこの要素をDOM内に持っています:<div id="main" class="main"></div>
。 $( 'main')と$( 'main:first')で要素を選択するのに違いはありますか?jQueryセレクタの相違点
EDIT: これは、この要素がクラス名が "main"の唯一の要素であることを前提としています。
EDIT:これは、この要素がクラス名が "main"の唯一の要素であることを前提としています。
$('#main')
か$('.main')
で選択すると、あなたに同じ結果を返すだけ.main
などがあるので、違いはありません。
パフォーマンス面では、ハイファイアニメーションや巨大なDOM操作を使用しない限り、無視できます。
$('#main')
- 高速、すっきりと
$('.main:first')
:first
フィルタに比べて遅い遅いです。
- >あなたは:first
を必要としません。ちょうど$('.main')
があなたの望む結果を返します。
その他のオプション -
$('.main')
- IDセレクターよりも遅い
$('div.main')
からhttp://jsperf.com/jquery-class-vs-id-v2
証明をよりまだ良いIDセレクターよりも遅いです
はい。その要素がクラスmain
の最初の要素でない場合、その要素は選択されません。
$( "#main")はIDを使用しているため、おそらく少し速くなります。
また、元の要素の前に.mainクラスを持つ別の要素を追加すると、失敗します。
IDセレクタは、jQueryがDOM IDを一意にする(ビューあたり1つのみを意味する)必要がありますが、複数のメインクラスを持つことができるため、より強力です。
クラスセレクターはかなり速いです。 – BoltClock
@BoltClockはい、IDセレクタほど高速ではありませんhttp://jsperf.com/jquery-class-vs-id-v2 –