28

.add()方法是否允许一次选择多个对象而不是一次添加一个?

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

以下变量以它们的方式设置,因为每个变量都有不同的功能。

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

但是,如果我想添加一个适用于所有这些元素的额外功能怎么办?我必须一一添加吗?

我知道您可以使用 选择它们$("#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

您可以缓存添加的对象,以便您只需添加一次 - 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 回答