티스토리 뷰

Element.ChildNodes 로 참조받은 배열은 해당 Child 노드들이  재구성 될 때  같이 갱신됨.

  ex)  <div id="pNode">
           <span id="c1"></span>
           <span id="c2"></span>
        </div>

       와 같은 Element 들이 있을때,

       var parentNode = document.getElementById("pNode");
       var arrNodes = parentNode.childNodes;

       alert("First Child : " + arrNodes(0).id + ", "Second Child : " + arrNodes(1)).id;
       // First Chlid : c1, Second Child : c2 가 출력됨.
      
       parentNode.removeChild(arrNodes(0));      // 첫번째 ChildNode 삭제.

       alert("First Child : " + arrNodes(0).id + ", "Second Child : " + arrNodes(1)).id;
       //First Chlid : undefined, Second Child : c2 가 출력될꺼라 예상되지만, 실제로는
       //First Chlid : c2, Second Child : undefined 가 출력됨.


RE: 그럼 언제 c2가 arrNodes(0)으로 되는 거지?
      (child nodes가 재구성 되는 때가 언제란 얘기?)


RE: RE: ChildNode가 삭제되는 시점. 더 정확한 시점은 브라우저 만든 사람만 알겠지만 ㅎㅎ



RE: RE: RE: ChildNode가 삭제되는 시점이 removeChild할 때를 얘기하는 건가?
                    아니면 가비지컬렉션(?같은 개념?)에서 삭제할 때를 얘기하는 건가?
      
RE: RE: RE: 이야기가 좀 새지만, 자바스크립트 자체는 가비지 컬렉션 같은 개념이 없지. 스크립트에 할당되는 모든 메모리는 브라우져가 관리한다고 생각되는데.. removeChild 나 addChild등을 통해서 배열이 참조한 대상 객체가 갱신될 때 배열도 갱신되는것으로 생각됨.
반응형
댓글
공지사항