2011-06-15 38 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)。

相關問題