jquery clone only元素的内容

时间:2013-01-06 02:13:12

标签: javascript jquery

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

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

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

感谢。

2 个答案:

答案 0 :(得分:24)

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

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

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

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

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

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

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

答案 1 :(得分:5)

如果您喜欢深层复制,只需克隆孩子:

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

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

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

$('body').on('click', 'button.className',  function(){
  alert('button clicked');
});