문제

페이지에서 랩핑 노드 요소를 이동 해야하는 스크립트를 작성하고 있습니다. 나는 이것을 할 때, 나는 이전에 포장 된 아이들을 제거한다는 것을 알았습니다. 노드의 어린이를 다른 곳으로 이동할 수 있도록 노드의 어린이를 어떻게 사용하지 않습니까?

나는 다음과 같은 생각을하고 있었다 :

  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는 요소 노드에서 작동하며 새 노드와 새 노드가 우선합니다.

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

//테스트

Unhrap (document.getElementById ( "blah"));

enter image description here

다른 팁

첫 번째 자녀를 반복하고 부모를 "포장"요소의 부모에게 할당해야합니다.

아마도 다음과 같은 것 :

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

     for ( child in children ) {
        child.parentNode = parg.parentNode;
     }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top