Javascript 使用生成的元素的jQuery.add()无效

Javascript 使用生成的元素的jQuery.add()无效,javascript,jquery,Javascript,Jquery,我试图循环遍历一个数组,使用它的值创建一个元素集合,稍后添加到DOM中 为此,我使用了以下代码: $().add($('<span />', { class: 'child', text: 'test' })).appendTo('.container'); var spans=$('<span />', { class: 'child', text: 'test' }); $('.container').append(spans)

我试图循环遍历一个数组,使用它的值创建一个元素集合,稍后添加到DOM中

为此,我使用了以下代码:

$().add($('<span />', {
    class: 'child',
    text: 'test'
})).appendTo('.container');
var spans=$('<span />', {
    class: 'child',
    text: 'test'
});  

$('.container').append(spans);
$()。添加($(''){
班级:'儿童',
文本:“测试”
})).appendTo(“.container”);
或者类似的东西。。。生成的元素未添加到集合中。这里有一把小提琴也说明了这一点:
无需创建空的jQuery对象。此外,HTML中没有
.container
。使用此代码:

$().add($('<span />', {
    class: 'child',
    text: 'test'
})).appendTo('.container');
var spans=$('<span />', {
    class: 'child',
    text: 'test'
});  

$('.container').append(spans);
var span=$(“”{
班级:'儿童',
文本:“测试”
});  
$('.container').append(span);

工作

只需使用一个简单的数组并将新元素推送到数组中

var spans = new Array();
console.log(spans.length);

spans.push($('<span />', {
    class: 'child',
    text: 'test'
}));

console.log(spans.length);   
$('.container').append(spans);
var span=new Array();
控制台.日志(跨度.长度);
跨距。推送($(''){
班级:'儿童',
文本:“测试”
}));
控制台.日志(跨度.长度);
$('.container').append(span);

在发布的fiddle中,您还混合了容器和父类,这就是为什么
append()
仍然不能工作的原因。我为这两个容器命名。

$()。是否添加?为什么是这个构造?这里有一个提示:uncaughttypeerror:无法读取未定义$('.container').append(您的新元素)的属性'parent';这种格式看起来很奇怪,因为它是我在代码中所做工作的一个非常简单的示例。我真的很想知道为什么$.fn.add函数不是这样工作的。我专门测试的是add()方法,因为在我的实际代码中,我经历了一个大的for循环,并添加了我生成的元素。然后,在循环完成后,将所有内容添加到DOM中。谢谢!我没有意识到append()采用了本机数组。我仍然想知道为什么jQuery add()函数不能像我预期的那样工作,但是我很快就会停止关注。因为
add()
不会像您想象的那样更改原始选择。仔细查看第二个代码块: