2010-05-23 8 views
3

전문가님께, JS를 사용하여 DOM 요소를 동적으로 생성하려고했습니다.자바 스크립트 배열에 DOM 참조 요소 저장

더글러스 크록 포드 (Douglas Crockford)의 책에서 DOM이 매우 잘 구성되어 있지 않다는 것을 읽었습니다.

어쨌든, 나중에 액세스 할 수 있도록 여러 개의 DIVISION 요소를 만들고 배열에 참조를 저장하고 싶습니다.

여기에 만들어 단지 1 div 요소가있다 코드

for(i=0; i<3; i++) { 
    var div = document.body.appendChild(document.createElement("div")); 
    var arr = new Array(); 
    arr.push(div); 
} 
어떻게 든

이 작동하지 않을 것입니다 ..... 입니다. arr.length을 사용하여 코드를 테스트 할 때 배열에 요소가 하나만 있습니다.

다른 방법으로이 작업을 수행 할 수 있습니까? 사전

+2

누군가에게 감사하는 가장 좋은 방법은 대답을 수락하는 것입니다. 누군가 그것을 말해야했다 :) – alex

답변

13

에서

덕분에 당신은 각 반복과 배열을 다시 (및 그것을 블랭킹)된다.

나는 이렇게 생각합니다.

var arr = []; // more succinct version of new Array(); 

for (var i = 0; i < 3; i++) { 
    var div = document.body.appendChild(document.createElement('div')); 
    arr.push(div);   
}; 
+0

천재, 타이 알렉스. 어떻게 생각하지 못했습니다 ... –

+4

@webzide, alex의 게시물 옆에있는 체크 버튼을 클릭하는 것을 잊지 마세요! – Warty

3

루프가 실행될 때마다 별도의 배열을 만들고 있습니다.
따라서 각 배열 인스턴스

루프 외부에서 arr 변수를 이동해야합니다.

관련 문제