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,所以行为是未定义的。