将CSS应用于变量中的多个元素

时间:2011-01-21 14:05:04

标签: javascript jquery

我有这个:

var $e1 = $('#e1');
var $e2 = $('#e2');
var $e3 = $('#e3');

这不起作用:

var $all = [$e1, $e2, $e3];
$($all).css('background', '#ff0000');

如何重复使用$el1$el2$el3

我不想这样做:

$('#e1, #e2, #e3')

这可能很简单,但我不知道要搜索什么来查找。

7 个答案:

答案 0 :(得分:3)

你可以这样做:

var $all = $e1.add($e2).add($e3);

或者这(看起来有点迟钝,但这是正确的方法 - 你必须先用[0]从jQuery对象中提取节点):

var $all = $([$e1[0], $e2[0], $e3[0]]);

注意:在我的示例中,$all已经是一个jQuery对象,因此您不需要再次包装它:$($all)。只是做:

$all.css('background', '#ff0000');

答案 1 :(得分:0)

编辑:更好:

var $e1 = $('#e1');
var $e2 = $('#e2');
var $e3 = $('#e3');
var all = $e1.add($e2).add($e3);
all.css('background', '#ff0000');

答案 2 :(得分:0)

$e1.add($e2).add($e3)

是合并不同元素/ jQuery对象的另一种方式。

参考:.add()

答案 3 :(得分:0)

编辑: 在jQuery实例中包装数组并遍历其元素

all = [$e1, $e2, $e3];

$(all).each(function(index, element){
   element.css('background', '#ff0000');
})

答案 4 :(得分:0)

如果您不想使用选择器,请将样式应用于数组的每个元素。

for(i = 0; i < $all.length; i++)
    $all[i].css('background', '#ff0000');

答案 5 :(得分:0)

你可以在你的例子中做你所拥有的:

var $all = [$e1, $e2, $e3],
    i = $all.length;

for(; i--;) {
    $all[i].css('background', '#f00');
}

答案 6 :(得分:0)

看来你可以做到这一点:

$(deleteBtn).add(copyBtn).add(moveBtn).css('background', 'white');

正如它在这里所说http://api.jquery.com/add/