티스토리 뷰
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등을 통해서 배열이 참조한 대상 객체가 갱신될 때 배열도 갱신되는것으로 생각됨.
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등을 통해서 배열이 참조한 대상 객체가 갱신될 때 배열도 갱신되는것으로 생각됨.
반응형
댓글
공지사항