1

同じ構造で何百もの製品が表示されているサイトで、jQuery を使用してかなりの数の HTML 操作を行う必要があります。ほとんどのコード ブロックは、同じクラス名を持つ div コンテナーに個別にラップされています。

HTML 操作に $('.class') の代わりに $('#ID') を使用できるように、クラス名に一意の ID を挿入する必要があるかどうか疑問に思っています。この記事#3からアイデアを得ます。

おそらく for ループを使用して、クラスの後に ID を挿入し、ID を作成します。これは時間の価値がありますか?さらに重要なことは、それがパフォーマンスに役立つかどうかです。

編集: 私が行おうとしている操作の種類については、確かに for ループがかなり頻繁に使用されます。また、ページネーションがパフォーマンスに何らかの影響を与えるかどうかはよくわかりません。製品はページごとに 10 個表示されるようになり、ユーザーはページごとにさらに表示するオプションを利用できるようになりました。

4

2 に答える 2

1

はい、IDセレクターははるかに効率的です。それらを使用して範囲を絞り込み、後でクラスごとに選択できます。また、再利用される可能性のある選択を保存します。

var container = $("#someId");
var products = container.find(".product");

//later on...

products.find(".class").doSomething();

.children()また、それはより効率的であることを覚えておいてください.find()-可能な場合はそれを使用してください。

于 2013-02-06T22:36:49.420 に答える
0

そのようにすることはおそらく良い習慣ですが、ページが大きい (多くの要素がある) 場合、または要素を何度も選択している場合 (つまり、ループ内) にのみ違いに気付くでしょう。

サイクルから必要な要素を選択し、内部でそれへの参照を使用する方が、より適切で簡単です

var obj = $('#someid');
while (expression){obj.something();}
于 2013-02-06T22:37:47.910 に答える