我有这个:
var $e1 = $('#e1');
var $e2 = $('#e2');
var $e3 = $('#e3');
这不起作用:
var $all = [$e1, $e2, $e3];
$($all).css('background', '#ff0000');
如何重复使用$el1
,$el2
,$el3
?
我不想这样做:
$('#e1, #e2, #e3')
这可能很简单,但我不知道要搜索什么来查找。
答案 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)
答案 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/