28

この.add()方法では、一度に 1 つずつ追加するのではなく、一度に複数のオブジェクトを選択できますか?

one.add(two).add(three).add(four).on("click", function() { });

次の変数は、それぞれが異なる機能を持っているため、そのように設定されています。

var one   = $("#1");
var two   = $("#2");
var three = $("#3");
var four  = $("#4");

しかし、これらすべての要素に適用される関数を追加したい場合はどうすればよいでしょうか? それらを 1 つずつ追加する必要がありますか?

を使用してそれらをすべて選択できることは知っていますが$("#1,#2,#3,#4")、上記の変数を利用したいだけです。

4

3 に答える 3

37

純粋に読みやすさのために、この配列アプローチを好みます...

$([one, two, three, four]).each(function() {
    // your function here
});
于 2013-01-31T13:55:39.853 に答える
11

一度に複数のオブジェクトを追加することはできません。次に例を示します。

var groupThree = one.add(three, five); // will not work as expected

追加したオブジェクトをキャッシュして、追加を 1 回だけ行うことができます - http://jsfiddle.net/X5432/

var one   = $("#1");
var two   = $("#2");
var three = $("#3");
var four  = $("#4");
var five  = $("#5");

var groupOne = one.add(two).add(three).add(four);
var groupTwo = groupOne.add(five);

$('#first').click(function(e){
    e.preventDefault();
    groupOne.css({'background': '#00FF00'});
});

$('#second').click(function(e){
    e.preventDefault();
    groupTwo.css({'background': '#FF0000'});
});

しかし、私は配列メソッドの方が好きです。これは、それについての別の考え方です。

于 2013-01-31T14:09:56.053 に答える
5

このような配列にそれらを入れることができます

var k = [one,two,three,four]

$.each(k,function(){
  $(this).click(function(){
     //Function here
   });
});
于 2013-01-31T13:56:09.760 に答える