jQuery的.clone()
似乎有效,一旦你在某处插入克隆对象,你就不能再次插入它而不重新克隆原始对象。例如,如果您这样做:
var cloned = $('#elem1').clone();
$('#elem2').after(cloned);
$('#elem2').after(cloned);
只会复制elem1
的一个副本,而第二个after
来电将无效。
使用克隆对象后有没有办法不“清除剪贴板”?现在我正在通过在将对象插入某处之前再次克隆该对象来做。有更好的方法吗?
答案 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,所以行为未定义。