jQuery add()方法的奇怪行为

Dee*_*eep 3 javascript jquery

我有两个相同的(?)代码片段:

var x = document.createElement('div');
var y = document.createElement('div');
var z = $().add(x).add(y);
console.log(z);
Run Code Online (Sandbox Code Playgroud)

var x = document.createElement('div');
var y = document.createElement('div');
var z = $();
z.add(x);
z.add(y);
console.log(z);
Run Code Online (Sandbox Code Playgroud)

第一个例子告诉我:+ Object [div,div]

和其他:对象[]

为什么???

小提琴:http://jsfiddle.net/d3x7gsLu/

更神奇:http://jsfiddle.net/d3x7gsLu/1/

UPD:

第一个正确答案:https://stackoverflow.com/a/31798686/3558278

现在我的问题:

如何在没有创建新的jQuery对象的情况下(将元素附加到内部集合中)?因为在实际中我有很多很多元素.

UPD2:

在这里回答:聚合jQuery对象?

谢谢大家!

Joh*_*son 6

来自jQuery API:

给定一个表示一组DOM元素的jQuery对象,.add()方法从这些元素的并集和传递给方法的元素构造一个新的jQuery对象..add()的参数几乎可以是$()接受的任何内容,包括jQuery选择器表达式,对DOM元素的引用或HTML片段.

这意味着您的示例不相等,等于您的第二个示例应如下所示:

var x = document.createElement('div');
var y = document.createElement('div');
var z = $();
z = z.add(x);
z = z.add(y);
console.log(z);
Run Code Online (Sandbox Code Playgroud)