我想获取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>
如果有人有任何建议请告诉我,谢谢。
答案 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)
答案 4 :(得分:0)
使用.clone()创建完整(深层)副本,并将其附加到要添加到其中的元素...
$('div#MemberFormWrapper').clone().appendTo('#dialog-form-Membe');