使用.add()选择多个jQuery对象

时间:2013-01-31 13:50:15

标签: javascript jquery

.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")选择它们,但我只是想利用上述变量。

3 个答案:

答案 0 :(得分:31)

我更喜欢这种阵列方法,纯粹是为了可读性......

$([one, two, three, four]).each(function() {
    // your function here
});

答案 1 :(得分: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'});
});

但我更喜欢数组方法,这只是一种不同的思考方式。

答案 2 :(得分:4)

您可以将它们放入像这样的数组中

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

$.each(k,function(){
  $(this).click(function(){
     //Function here
   });
});