Ответ 1
Я бы предпочел использовать этот массив, чисто для удобочитаемости...
$([one, two, three, four]).each(function() {
// your function here
});
Использует ли метод .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")
, но я просто хочу использовать приведенные выше переменные.
Я бы предпочел использовать этот массив, чисто для удобочитаемости...
$([one, two, three, four]).each(function() {
// your function here
});
Вы не можете добавить несколько объектов за один раз, например:
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'});
});
Но мне нравится метод массива лучше, это просто другой способ думать об этом.
Вы можете поместить их в массив вроде этого
var k = [one,two,three,four]
$.each(k,function(){
$(this).click(function(){
//Function here
});
});