14

私のプロジェクトでは、キャッシュされたセレクターを使用して高速化し、改善を確認しています:(ドキュメント内の検索を減らすため)

var sel1 = $('#selector1');
var sel2 = $('#selector2');

この状況でキャッシュされたセレクターを使用するにはどうすればよいですか? 例:

$('#selector1, #selector2').fadeTo(300, 1, 'linear');

それは私のコードを磨くだけです

タイ:)

4

5 に答える 5

17

.add()「一致した要素のセットに要素を追加する」ために使用できます。

sel1.add(sel2).fadeTo(300, 1, 'linear');

のドキュメント.add(): http://api.jquery.com/add

.add()取り入れることができます:

  • セレクター
  • DOM 要素
  • jQuery オブジェクト
  • およびコンテキストを持つセレクター ( $('<selector>', <context>))

DOM 要素の配列を jQuery に渡すこともできます。

var one = $('#one')[0],
    two = $('#two')[0];

$([one, two]).fadeTo(300, 1, 'linear');

ここにデモがあります:http://jsfiddle.net/3xJzE/

アップデート

現在回答されている 3 つの異なるメソッドの jsperf を作成しました: http://jsperf.com/jquery-fadeto-once-vs-twice (配列セレクターを使用するのが最速のようです$([one, two]).fadeTo...:)

于 2011-12-15T20:37:38.777 に答える
7

.add()そのためにメソッドを使用できます。

sel1.add(sel2).fadeTo(300, 1, 'linear');

$変数に名前を付けるときにプレフィックスを追加するとよいでしょう。このようにして、それらを標準の JavaScript オブジェクトと区別することができます。したがって、これはより良いです:

var $sel1 = $('#selector1');
var $sel2 = $('#selector2');

$sel1.add($sel2).fadeTo(300, 1, 'linear');
于 2011-12-15T20:37:16.830 に答える
7

jQueryの追加

sel1.add(sel2).fadeTo(300, 1, 'linear');
于 2011-12-15T20:37:21.073 に答える
1

セレクターが既に保存されている場合は、それぞれに個別に fadeTo を適用するだけです。とにかく、JQueryはセレクターを解析する必要があります...

sel1.fadeTo(300, 1, 'linear');
sel2.fadeTo(300, 1, 'linear');
于 2011-12-15T20:36:47.473 に答える
1

これを試して

sel1.add(sel2).fadeTo(300, 1, 'linear');
于 2011-12-15T20:40:57.127 に答える