0

我有一个看起来像这样的 DOM:

 div id = main
   div
   div

我想把名为“中间”的 div 像这样:

  div id = main
   div id = middle
     div
     div

所以我想将主节点的所有子节点移动到中间节点,中间节点成为主节点的唯一子节点。我试图弄清楚,但我做不到。

我使用这段代码:

 $wrapper = $doc->createElement('div');
 foreach($node->childNodes as $child) 
 {
     $node->removeChild($child);
     $wrapper->appendChild($child);
 }
 $node->appendChild($wrapper);

但它不起作用。

如果我这样做:

          $wrapper = $doc->createElement('div');
          $children = $node->childNodes;
          for($i = $children->length; $i--;) {
              $child = $children->item($i);
              $node->removeChild($child);
              $wrapper->appendChild($child);
          } 
           $node->appendChild($wrapper);

项目被移动,但顺序相反。

如何在 PHP 中正确执行此操作?

4

1 回答 1

0
          $wrapper = $doc->createElement('div');
          $children = $node->childNodes;
          for($i = 0; $children->length > 0; $i++) {
              $child = $children->item(0);
              $node->removeChild($child);
              $wrapper->appendChild($child);
          } 
           $node->appendChild($wrapper);
于 2012-07-25T14:15:56.737 回答