jQuery,如何将HTML中的一个元素追加到另一个元素?

时间:2011-06-15 21:30:22

标签: jquery

我想获取HTML中页面上已有的一个元素,并将该元素附加到HTML中的另一个div或元素。

我不想附加字符串但是 我用了

$("#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>

如果有人有任何建议请告诉我,谢谢。

5 个答案:

答案 0 :(得分:4)

我相信你要找的是clone()

答案 1 :(得分: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   默认值不正确。   这将改为false   1.5.1及以上。

     

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

答案 2 :(得分: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(),但要小心,因为这会产生ID为one的2个元素,这是一个问题。

$("#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');

答案 3 :(得分:0)

clone在追加之前的元素。

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

Demo

答案 4 :(得分:0)

使用.clone()创建完整(深层)副本,并将其附加到要添加到其中的元素...

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