2010-03-07 4 views
2

다음은 1부터 10까지의 숫자 순차 목록을 만드는 코드입니다.이 목록을 가져 와서 innerHTML을 사용하여 div "페이지 매김"에 출력하고 싶습니다. 그러나 스크립트를 실행할 때 출력되는 것은 숫자 10뿐입니다. 대신 document.write를 사용하여 페이지를 덮어 쓰면 전체 목록이 출력됩니다. 누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까? 감사. innerHTML을 사용하여 숫자의 전체 목록을 출력하는 데 문제가 있습니다.

function generateNumbers() { 
    var numbers = new Array(); 

    // start generating numbers 
    for(var i = 1; i <= 10; i+= 1) { 
     numbers.push(i); 
    } 

    // print numbers out. 
    for(var i = 0; i < numbers.length; i++) { 
     document.getElementById("pagination").innerHTML = numbers[i] + "<br>"; 
    } 
} 

과 HTML에

:

<div id="pagination"></div> 

답변

6

글쎄, 당신은 모든 단계에서 innerHTML 우선합니다.
시도 :

document.getElementById("pagination").innerHTML += numbers[i] + "<br>"; 

또는 더 나은 : 당신이 마지막 반복을 볼 수 있도록

// no for loop 
document.getElementById("pagination").innerHTML = numbers.join("<br>"); 
+0

아, 어리석은 나를. 고마워요! – Choy

0
for(var i = 0; i < numbers.length; i++) { 
    document.getElementById("pagination").innerHTML = numbers[i] + "<br>"; 
} 

이 루프를 통해 innerHTML 매번 대체합니다.

=+=으로 설정해보세요.

문자열로 작성하고 innerHTML을 마지막 문자열로 한 번만 설정하십시오. 100 번이 아닌 HTML로 문자열을 구문 분석하면되기 때문에 더 빠릅니다.

+0

어떻게 문자열로 작성한 다음 innerHTML을 설정하겠습니까? 그냥 숫자 [i] + "
"을 변수로 설정 하시겠습니까? – Choy

+0

:'var html = '';'그러면 루프 안에 : html + = numbers [i] + '
';'. 위의'join' 메쏘드는 모든 곳에서 더 깨끗합니다. –

+0

아, 알겠습니다. 고맙습니다. – Choy