(jQuery)不能多次追加同一个对象

时间:2018-05-13 14:39:23

标签: javascript jquery

当附加这样的复制元素时,我可以理解clone()方法的目的:

$aObject = $('.className').clone();
$aObject.removeAttr('id');
$('#add-line').click(function() {
   $('#container').append( $aObject.clone());
});

但我不明白的是,如果我摆脱克隆方法,只需使用

$('#container').append( $aObject);

我仍然可以将多个相同的对象添加到容器中,但似乎我只能添加一次aObject?我们不能故意多次添加同一个对象,就像一个相同对象的数组一样?

1 个答案:

答案 0 :(得分:1)

当您在JavaScript中将对象分配给变量时,实际上并不是指定存储在内存中的对象值 - 而是指向对象在内存中的位置的引用。

因此,当您声明$ aObject时,您现在已经存储了对特定对象的引用。附加它时,它的行为与您期望的一样,附加您引用的对象。当你尝试再次做同样的事情时,它指的是现在已经存在于DOM中的相同的对象,只需获取该对象并重新附加它(什么斯科特马库斯意味着当他说它充当行动时)。

如果您先克隆它,那么您将引用一个完全不同的对象,除了您已经附加的任何对象之外,还可以附加该对象。