Подтвердить что ты не робот

Выберите несколько объектов jQuery с .add()

Использует ли метод .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"), но я просто хочу использовать приведенные выше переменные.

4b9b3361

Ответ 1

Я бы предпочел использовать этот массив, чисто для удобочитаемости...

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

Ответ 2

Вы не можете добавить несколько объектов за один раз, например:

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'});
});

Но мне нравится метод массива лучше, это просто другой способ думать об этом.

Ответ 3

Вы можете поместить их в массив вроде этого

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

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