2011-06-15 92 views
3

我想获取HTML中页面上已有的元素,并将元素附加到HTML中的另一个div或元素。jQuery,如何将已经在HTML中的一个元素附加到另一个元素?

我不想添加一个字符串,但 我用

$("#dialog-form-Member").append($("div#MemberFormWrapper")); 

哪个把我的元素,并把它放在我想它,但它也得到了视觉为了把除掉的第一要素它在其他其他元素

例子:

<div id="one"> 
    I want to put this div into div 2 without div one disappearing. Keep both divs visible at the same time. 
</div> 

<div id="two"> 
    I want div one content to show here and keep both divs visible. 
</div> 

如果任何人有任何建议,请让我知道,谢谢。

+0

所以你想复制/克隆第一个div? – roberkules 2011-06-15 21:33:17

回答

4

我相信您所渴望的是clone()

+0

我找到了我正在寻找的东西。克隆是答案,但我们使用的是asp.net,它只是复制了我们的表单,我没有这么想,所以表单实际上只能在页面上存在一次。 相反,我正在使用模式,只是追加和从第一个div中删除表单,并将其附加到第二个div(模式),当用户取消模式时,我只是将其重新安装到第一个div。 感谢您的回复。 – ClosDesign 2011-06-15 22:52:59

0

clone追加之前的元素。

$("#two").append($("div#one").clone()); 

Demo

0

使一个完整的(深)的复印件使用.clone()一次追加到元素要添加它来...

$('div#MemberFormWrapper').clone().appendTo('#dialog-form-Membe'); 
3

要附加整个元素,你只需要HTML。

$("#two").append($("#one").html()); 

输出:

<div id="one"> 
    I want to put this div into div 2 without div one disappearing. Keep both divs visible at the same time. 
</div> 

<div id="two"> 
    I want div one content to show here and keep both divs visible. I want to put this div into div 2 without div one disappearing. Keep both divs visible at the same time. 
</div> 

或者,正如其他的答案表明,你可以使用clone(),但要小心,因为这将使2种元素的ID one,这是一个问题。

$("#two").append($("#one").clone()); 

输出:

<div id="one"> 
    I want to put this div into div 2 without div one disappearing. Keep both divs visible at the same time. 
</div> 

<div id="two"> 
    I want div one content to show here and keep both divs visible. 
    <div id="one"> 
     I want to put this div into div 2 without div one disappearing. Keep both divs visible at the same time. 
    </div> 
</div> 

请注意有2种one元素,你将需要改变其中一个的ID。

$('#one', '#two').attr('id', 'three'); 
+0

将复制“div#MemberFormWrapper的内容,但不是div标签本身的内容... – FatherStorm 2011-06-15 21:35:16

+0

@FatherStorm:我知道,OP没有指定这不是他想要的。 – 2011-06-15 21:36:32

4

您需要在追加之前克隆该元素以保留原始元素。

$("#dialog-form-Member").append($("div#MemberFormWrapper").clone()); 

为了留住事件处理程序和/或数据检查克隆方法的参数版本@http://api.jquery.com/clone/

摘自http://api.jquery.com/clone/

说明:创建 的深层副本一组匹配的元素。

版本加入:1.0.clone([ withDataAndEvents]) withDataAndEventsA布尔值,指示 事件处理程序是否应该是 与元件一起被复制。截至 jQuery 1.4,元素数据将被复制以及 。

版本加入:1.5.clone([ withDataAndEvents],[ deepWithDataAndEvents]) withDataAndEventsA布尔值指示是否 事件处理程序和数据应 与元件一起被复制。 默认值为false。 *对于1.5.0, 默认值不正确。 这将在 1.5.1及更高版本中更改为false。

deepWithDataAndEventsA布尔 指示是否事件处理程序和 数据克隆 元素的所有孩子应该被复制。默认情况下, 的值与第一个参数的值 相匹配(默认为false)。

相关问题