Javascript 将特定div之后的所有内容移动到其他标记下

Javascript 将特定div之后的所有内容移动到其他标记下,javascript,jquery,html,Javascript,Jquery,Html,我想将div之后的所有文本(html内容)移动到另一个标记中(同样位于div之下)。 例如,如果我有一个如下所示的页面,我想将div2之后的所有内容移动到body: <body> <div id=div1> <div id=div2></div> <div id=div3></div> <script>blah</script> and much

我想将div之后的所有文本(html内容)移动到另一个标记中(同样位于div之下)。 例如,如果我有一个如下所示的页面,我想将div2之后的所有内容移动到body:

<body>
    <div id=div1>
      <div id=div2></div>
      <div id=div3></div>
      <script>blah</script>
      and much more
    </div>
</body>

仅移动该分区。

您可以使用jQuery实现这一点

   var elems = $("#div2").nextAll();
    $('body').append(elems );

在我尝试之前,上面的响应不正确,因为它不移动文本节点。 试试这个,希望它是你想要的:

​var $div = $("#div2"​), $con = $div.parent().contents();
$con.slice($con.index($div)+1).appendTo("body");
​

在div2之前是否也有元素,或者它始终是div1的第一个子元素?在div2之前也可以有任何其他div,或者只是
$('#div2').nextAll().appendTo('body')
@Blender:谢谢,它很简短
   var elems = $("#div2").nextAll();
    $('body').append(elems );
​var $div = $("#div2"​), $con = $div.parent().contents();
$con.slice($con.index($div)+1).appendTo("body");
​