http://www.frostjedi.com/terra/scripts/demo/jquery02.html
根据这个链接,元素可以通过$('#container1').append($('#container2'))移动。但很遗憾,它对我似乎不起作用。有任何想法吗?
http://www.frostjedi.com/terra/scripts/demo/jquery02.html
根据这个链接,元素可以通过$('#container1').append($('#container2'))移动。但很遗憾,它对我似乎不起作用。有任何想法吗?
请参见 jsfiddle http://jsfiddle.net/Tu7Nc/1/
您需要使用JQuery的 html()
函数附加您的div内容(内部HTML),而非仅附加您的 div。
HTML:
<div id="1">aaa</div>
<div id="2">bbb</div>
jQuery:
$("#1").append($("#2").html());
结果:
aaabbb
bbb
最好不要使用html()
。
由于html会将内容解释为字符串而不是DOM节点,我遇到了一些问题。
请改用contents
,这样您的其他脚本就不会因为损坏的引用而中断。
我需要将DIV的内容嵌套到它自己的子元素中,以下是我的做法。
示例:
<div id="xy">
<span>contents</span>
</div>
<script>
contents = $("#xy").contents(); //reference the contents of id xy
$("#xy").append('<div class="test-class" />'); //create div with class test-class inside id xy
$("#xy").find(">.test-class").append(contents); //find direct child of xy with class test-class and move contents to new div
</script>
[编辑]
之前的示例可以工作,但以下是更简洁和更高效的示例:
<script>
var content = $("#xy").contents(); //find element
var wrapper = $('<div style="border: 1px solid #000;"/>'); //create wrapper element
content.after(wrapper); //insert wrapper after found element
wrapper.append(content); //move element into wrapper
</script>
$('#container2').contents().appendTo('#container1');
var el1 = document.getElementById('container1');
var el2 = document.getElementById('container2');
if (el1 && el2) el1.appendChild(el2);
document.getElementById('container1').appendChild(document.getElementById('container2'));
反思一下(几年后...),似乎意图是将一个div的内容移动到另一个div中。因此,以下代码在普通JS中实现了这一功能:
var el1 = document.getElementById('container1');
var el2 = document.getElementById('container2');
if (el1 && el2) {
while (el2.firstChild) el1.appendChild(el2.firstChild);
}
// Remove el2 if required
el2.parentNode.removeChild(el2);
$('#container1').append($('#container2').html())
如果你想要追加内容,这个也可以作为一种替代方案:
document.getElementById("div2").innerHTML=document.getElementById("div2").innerHTML+document.getElementById("div1").innerHTML
如果你想要重写内容:
document.getElementById("div2").innerHTML=document.getElementById("div1").innerHTML
function MoveContent(destId, srcId) {
$('#' + destId).append($('#' + srcId).contents().detach());
}
使用以下调用将分离的源节点内容附加到目标节点:
MoveContent('dest','src');
第一个参数是新父节点(目标)的ID,第二个参数是旧父节点(源)的ID。