jQuery clone()不起作用

时间:2014-12-19 16:51:47

标签: javascript jquery html

我似乎以某种方式打破了克隆功能。我的jQuery克隆函数相对简单,但似乎没有工作。我有两个元素,我正试图从一个复制到另一个:

<div id="copy"><span>Some stuff to copy.</span></div>

<div id="paste"></div>

jQuery的:

$(document).ready(function(){
  $('#copy').clone().append('#paste');
});

您可以在此处查看代码集:http://codepen.io/anon/pen/NPrBRq

3 个答案:

答案 0 :(得分:4)

应该是:

$(document).ready(function(){
  $('#copy span').clone().appendTo('#paste');
});

从根本上说,append()appendTo()执行相同的任务,但是,appendTo用于附加到特定元素(我相信,你想要的是什么)。阅读more here

另外,你的Pen没有包含jQuery库。

答案 1 :(得分:4)

该代码存在两个问题:

  1. 您想使用appendTo,而不是appenda.append(b)将内容b附加到元素a; a.appendTo(b)是另一种方式,它将a追加到b

  2. 您需要删除克隆元素的id;如果不这样做,则会创建一个无效的文档,因为id 必须是唯一的

  3. 所以:

    $(document).ready(function(){
      $('#copy').clone().removeAttr("id").appendTo('#paste');
    });
    

    $(document).ready(function(){
      $('#copy').clone().removeAttr("id").appendTo('#paste');
    });
    <div id="copy"><span>Some stuff to copy.</span></div>
    <div id="paste"></div>
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

答案 2 :(得分:1)

您应该将克隆的元素附加到DOM

$(document).ready(function(){
  $('#copy').clone().appendTo('#paste');
});