如何将jQuery对象添加到jQuery组合对象中

6
简单来说:jQuery对象是一个组合模式。我如何将jQuery对象添加到其中?
一个例子:
var e1 = $('#element1');
var e2 = $('#element2');

我想创建一个新的jQuery对象jq,使其由e1和e2组成。我希望能够像下面这样做:

var jq = $();
jq.addInjQueryObjects([e1, e2]);
jq.hide();

我该怎么做?

顺便说一句,我知道我一开始可以只选择 #element1 和 #element2,但这不是我想谈论的。

1个回答

8
你可以使用 jQuery的.add()方法
var e1 = $('#element1');
var e2 = $('#element2');

var jq = $();
jq = jq.add(e1).add(e2);
jq.hide();

它返回一个新的jQuery对象而不是修改原始对象,因此如果您想要重复使用相同的变量,您需要覆盖原始对象。

编辑:请注意,您还可以使用 jQuery.merge(),这将修改原始内容,但需要传入DOM元素的数组而不是jQuery对象。

var e1 = $('#element1');
var e2 = $('#element2');

var jq = $();
$.merge( jq, [e1[0], e2[0]] );
jq.hide();
​

这是一个展示该技术的 jsfiddle(供未来查看的任何人使用):http://jsfiddle.net/yjtEb/ - George Mauer
.add() 总是按照页面上出现的顺序添加元素,只有 $.merge() 可以按不同的顺序添加元素。 - gregn3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接