将特定div之后的所有内容移动到不同的标记下

时间:2012-09-20 06:51:13

标签: javascript jquery html

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

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

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

我该怎么做? 使用

$('#div').appendTo('body');

只移动那个div。

2 个答案:

答案 0 :(得分:2)

您可以使用jQuery实现此目的。

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

jsfiddle

答案 1 :(得分:0)

从我的尝试开始,上面的响应不正确,因为它不移动文本节点。 试试这个,希望这就是你要找的东西:

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

jsfiddle