3

関数の先頭で必要なすべてのオブジェクトを宣言するために使用します。これを使用してキャッシュし、アプリを高速に保ちます。たとえば、次のようなものがあります。

var $object1 = $('#my_element'),
    $object2 = $('.other_elements'),
    $object3 = $('.again_something_else');

コード内でこれらの変数を個別に使用するため、たとえば$object1.doSomething()、または$object2.doElse()いくつかのシナリオでは、同じ関数を既に選択されている 2 つ以上の変数に適用する必要があります。必要な要素の再選択を避けるために、これらの変数を一緒にマージする方法はありますか?

私はこれを避けます:

 $('#my_element, .other_elements').myFunction()

すでに持っている変数を再利用します。

4

2 に答える 2

3

使用できますadd

説明: 一致した要素のセットに要素を追加します。

$object1したがって、とを組み合わせたい場合は$object2、次のことができます。

var $one_and_two = $object1.add($object2);

デモ: http://jsfiddle.net/ambiguous/DHJvR/1/

add何も変更せず、選択した要素を新しいjQueryオブジェクトにマージして返すだけなので、$x.add(...)何もしません(この点に関するリマインダー/修正についてJan Dvorak$object1に感謝します)。

于 2013-06-06T04:45:51.167 に答える
-1

jQuery.mergeを使用して、エレメント キャッシュを一緒にマージできます。これらは本質的に配列だからです。

jQuery.merge($object1, $object2).myFunction();

$object1マージされたリストが含まれるため、キャッシュを再利用できないことに注意してください。次の方法で回避できます。

$.merge( $.merge([], $object1), $object2);

IMO、これを行う方が簡単だと思います:

function assignHandler () {
    $object1.myFunction();
    $object2.myFunction();
}
于 2013-06-06T04:48:46.390 に答える