你如何撤销;“周边内容”;用javascript?

你如何撤销;“周边内容”;用javascript?,javascript,removechild,Javascript,Removechild,我正在编写一个脚本,需要在页面上移动包装节点元素。我发现当我这样做的时候,我移除了之前包装好的孩子。如何取消节点的子节点,以便将父节点移动到其他位置 我是这样想的: var parg = document.getElementById("blah"); if (parg.hasChildNodes()) { var children = parg.childNodes; while (children.length > 0) { p

我正在编写一个脚本,需要在页面上移动包装节点元素。我发现当我这样做的时候,我移除了之前包装好的孩子。如何取消节点的子节点,以便将父节点移动到其他位置

我是这样想的:

  var parg = document.getElementById("blah");

  if (parg.hasChildNodes())
   {
     var children = parg.childNodes;
     while (children.length > 0)
     {
      parg.insertBefore(parg.firstChild);
      parg.removeChild(parg.firstChild);
     };
   };

我猜问题在于“insertBefore”逻辑。

您需要迭代第一级子元素,并将它们的父元素分配给“wrapper”元素的父元素

也许是这样的:

if ( parg.hasChildNodes() ) {
     var children = parg.childNodes;

     for ( child in children ) {
        child.parentNode = parg.parentNode;
     }
}

insertBefore在元素节点上操作并接受两个参数, 新节点,以及新节点之前的节点

function unwrap(who){
 var pa= who.parentNode;
 while(who.firstChild){
  pa.insertBefore(who.firstChild, who);
 }
}
//试验

展开(document.getElementById(“blah”)


好问题!你真的把问题表达得很清楚