2013-03-02 41 views
0

我看到各种各样的jQuery选项,例如append,prepend,appedTo等,但我只想取出div的内容并将其附加到body的内部。整个内容,所以不是使用.html(),而是加载其他div。这些div可能有附加的事件,所以我不想把它们全部弄乱。jQuery:我看到append,prepend,appendTo,怎么样去掉内容?

<div id="main"> 
    <div id="anything" class="anything"> 
     <p>hello etc.</p> 
    </div> 
</div> 

所以,我需要拿出里面的id =“main”的一切

所以,像$(“#主”)。获得其通的内容,和追加对('体')会做到这一点。

我想我可以写一个冗长的脚本,但必须有一个简单的单行jQuery选项?

+0

也许'的.html()'? – jeremy 2013-03-02 03:10:19

+0

是否要在文档中保留“主”div,但为空或将其删除? – nnnnnn 2013-03-02 03:10:31

回答

2

事情是这样的:

$('#main').detach().children().appendTo('body'); 

如果您想离开,请省略.detach()部分div在地方,但空。

这将保持与元素相关联的任何事件处理程序或数据移动,因为你可以在这里看到:http://jsbin.com/iguqew/1/edit

+0

完美。没有detach()部分正是我想要的并且完美地工作。再次感谢。 – user2026796222222222 2013-03-02 03:19:32

+0

答案很快,我还没有被允许接受答案。等待1分钟。 – user2026796222222222 2013-03-02 03:22:23

0

您应该能够使用append

$("body").append($("#main").html()); 
$("#main").empty(); 

你也可以做到这一点,应保持事件处理到位:

$('body').append($("#main").children()); 
+0

谢谢,但是这会弄乱了HTML – user2026796222222222 2013-03-02 03:21:46

+0

@ user2026796222222222中的一些事件 - 无法对上述答案达成更多共识。这应该也是如此:$('body')。append($(“#main”)。children()); – sgeddes 2013-03-02 03:24:52

相关问题