jQuery克隆无限次?

时间:2010-02-15 05:28:57

标签: jquery clone infinite

jQuery的.clone()似乎有效,一旦你在某处插入克隆对象,你就不能再次插入它而不重新克隆原始对象。例如,如果您这样做:

var cloned = $('#elem1').clone();
$('#elem2').after(cloned);
$('#elem2').after(cloned);

只会复制elem1的一个副本,而第二个after来电将无效。

使用克隆对象后有没有办法不“清除剪贴板”?现在我正在通过在将对象插入某处之前再次克隆该对象来做。有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

你的两行只是两次移动相同的jQuery元素集。如果您想要新副本,则必须再次克隆它。 after()不会克隆任何内容。它只是移动内容。在这种情况下clone()是创建内容的原因。

var cloned = $('#elem1').clone();
$('#elem2').after(cloned);
cloned = $('#elem1').clone();
$('#elem2').after(cloned);

此外,您应该在执行此操作时更改或删除ID属性:

var cloned = $('#elem1').clone().removeAttr("id");
$('#elem2').after(cloned);
cloned = $('#elem1').clone().removeAttr("id");
$('#elem2').after(cloned);

因为技术上不允许重复ID,所以行为未定义。