jQuery克隆无限次?

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

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

只复制一份elem1副本,第二次调用after不会做任何事情。

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

你的两行只是两次移动相同的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,所以行为是未定义的。