2011-01-21 48 views
0

多个元素我有这样的:应用CSS中的变量

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

这不起作用:

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

我应该怎么做,同时重用$el1$el2$el3

我不想做的事:

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

这可能是很简单的事,但我不知道该怎么寻找,找出。

+1

为什么不如果我想问,你想做$('#e1,#e2,#e3')吗? – sjobe 2011-01-21 14:07:42

+0

变量名称中的$`-prefix用于jQuery对象。不要将它用于常规数组,它只会让你困惑。 – 2011-01-21 14:27:17

回答

3

你可以这样做:

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

还是这样(看起来有点钝,但它是正确的方式 - 你必须提取从节点jQuery对象先用[0]):

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

注:在我的例子中,$all已经是一个jQuery对象,所以你不需要像这样再次包装它:$($all)。只要做到:

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

编辑:甚至更好:

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

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

参考:.add()

0

编辑: 包装数组中jQuery的实例,并通过其内容

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

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

迭代那么如果你不想使用选择,样式应用到的每个元素阵列。

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

你可以做什么,你有你的例子:

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

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

看来你CA做的只是这一点:

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

由于这里说的http://api.jquery.com/add/