jquery clone only元素的内容

Dou*_*eri 8 javascript jquery

有没有办法在jQuery中克隆元素的内容?不是整个元素,只有内容(孩子).

类似于.html()正在做的事情,但我也有兴趣克隆附加到内容的事件.

我在看.clone,但似乎克隆了整个元素.

谢谢.

Bee*_*oot 24

Doua Beri,参考jQuery API文档,.clone()你会发现你想要的是.clone(true,true).这将生成元素(或元素集合)的深层副本,包括所有数据和事件绑定.

然后,您可以选择两种方式来使用.clone(true,true).

  1. 单独克隆孩子,给出一个包含孩子克隆的jQuery集合.

    var $childClones = $("#myElement").children().clone(true,true);

  2. 克隆外部元素以提供包含外部元素的克隆的jQuery集合,该外部元素本身包含子元素的克隆.

    var $clone = $("#myElement").clone(true,true);

你采用的方法有些学术化.在这两种情况下,后代元素可以共同或单独地被操作和/或插入到DOM中,尽管这样做的代码会略有不同.


nim*_*rod 5

如果你喜欢深拷贝只是克隆孩子:

$('#footer-flair').children().clone()

而不是将事件附加到特定元素而不是将事件附加到正在侦听子元素的容器元素,即使您在容器内添加/删除了一千个元素,只要容器元素保持不变,您的事件就会触发.如果您不希望事件消失,您可以在body标签上执行此操作.

使用'on'方法绑定事件,如下所示:

$('body').on('click', 'button.className',  function(){
  alert('button clicked');
});
Run Code Online (Sandbox Code Playgroud)