jQuery将<div>克隆到动态创建的<div> </div> </div>

时间:2012-01-19 18:58:56

标签: jquery

我想将'divhtml'的html克隆为'divPlainHtml'但是下面的代码不起作用:执行后,$('#divPlainHtml')返回空对象[]

$('#divhtml').clone(false).
      appendTo('<div id="divPlainHtml" style="display: none;"></div>')

3 个答案:

答案 0 :(得分:1)

这是因为divPlainHtml尚未出现在您的网页上。

将divPlainHtml附加到您的页面。

$('whereever').append("<div id='divPlainHtml'></div>");

然后执行$("#divPlainHtml").append($("divHtml").clone(false));

答案 1 :(得分:1)

这是因为不在DOM中。

.appendTo('<div id="divPlainHtml" style="display: none;"></div>')

这会将您的新元素追加到不在DOM中的div,因此$('#divPlainHtml')找不到它。

不使用appendTo,而是使用append

$('<div id="divPlainHtml" style="display: none;"></div>')
  .append($('#divhtml').clone(false));

您可以将divPlainHtml添加到您想要的DOM中。像这样:

$('<div id="divPlainHtml" style="display: none;"></div>')
  .append($('#divhtml').clone(false)).appendTo('body');

注意:您不应该有多个具有相同ID的元素,因此您应该在克隆后更改divhtml的ID。

$('<div id="divPlainHtml" style="display: none;"></div>')
  .append($('#divhtml').clone(false).attr('id', 'divhtml2'));

答案 2 :(得分:1)

原因是,要追加的DOM中不存在divPlainHtml。试试这个。

$('<div id="divPlainHtml" style="display: none;"></div>')
.appendTo(document.body)//Or specify the container where you want to append it
.append($('#divhtml').clone(false));