ページから複数の要素を選択することが心配です。クラスごとにセレクターを使用するか、ID ごとに複数のセレクターを使用する方が良いですか?
選択したい要素の数、または選択したくない要素を破棄するが、セレクターがチェックする必要がある要素の数は毎回異なります。
(私の英語でごめんなさい)
ページから複数の要素を選択することが心配です。クラスごとにセレクターを使用するか、ID ごとに複数のセレクターを使用する方が良いですか?
選択したい要素の数、または選択したくない要素を破棄するが、セレクターがチェックする必要がある要素の数は毎回異なります。
(私の英語でごめんなさい)
一般に、最も読みやすいものを使用する必要があります。この状況では、クラス名で選択することになり、パフォーマンスも向上します。将来的には、このようなマイクロ最適化は避けるのが最善です。パフォーマンスに何らかの影響を与える可能性は低いからです。パフォーマンスが要因となる時期を特定することが重要であり、通常はスクリプトの実行に 100 ミリ秒以上かかる場合に発生します。
jsperf は、これらのタイプの質問に最適です
html
<div>
<div class="divs" id="a1"></div>
<div class="divs" id="a2"></div>
<div class="divs" id="a3"></div>
<div class="divs" id="a4"></div>
<div class="divs" id="a5"></div>
<div class="divs" id="a6"></div>
<div class="divs" id="a7"></div>
<div class="divs" id="a8"></div>
</div>
クラススクリプトで要素を取得
var divs = $(".divs");
ループ内の ID で要素を取得する
var divs;
for( var i = 1; i < 9; i++ )
{
divs == void 0? $("#a"+i) : divs.add($("#a"+i));
}
結果:
クラス別:
109,735 opts/second
±4.17%
fastest
IDによるループ内:
75,074 opts/second
±5.70%
33% slower
たくさんの要素を取得したい場合は、クラスごとにセレクターを使用することをお勧めします。ID でセレクターを使用するのは、その要素を使用したいだけだからです。ID は一意である必要があります。
スペイン語の回答: Los selectores si quieres traer varios elementos deberia ser utilizado por clase. Si utilizas por id se supone que en el html solo deberia de haber un elemnto con un Id es unico.