2014-07-17 2 views
0

HTML을 반복하지자바 스크립트가 루프 연결된 문자열

<div id="this1"></div> 

JS

var total = 5; 
for (var i=0; i<total; i++){ 
    var id = "this" + i.toString(); 
    var s= document.getElementById("this1"); 
    s.innerHTML += id; 
    s.innerHTML += "<br/>"; 
} 

내가 원하는 무엇

this0 
this1 
this2 
this3 
this4 

는 VAR ID로 요소 선택을 변경하는 것입니다 출력 .

var s= document.getElementById(id); 

이렇게하면 루프가 한 번 반복되어 중지됩니다. 나는 등 루프 내가 1,2,3에 대한 변경하고 IE와 HTML의 DIV ID가 일치하는 경우 :

HTML을

<div id="this3"></div> 

JS

for (var i=3; i<total; i++){ 

출력

this3 

필자는 정상적인 결과를 얻었습니다. 그러나 0에서 iterator를 시작하면 1 루프를 얻습니다.

근본적인 무언가가 내 반기에 눈치 채지 못하겠습니까?

답변

1

루프가 0 기반이므로 this0의 ID가 필요합니다. 그렇지 않은 경우 .innerHtml을 정의하지 않은 경우 예외가 발생합니다.

<div id="this0"></div> 
<div id="this1"></div> 
<div id="this2"></div> 
<div id="this3"></div> 
<div id="this4"></div> 

var total = 5; 
for (var i=0; i<total; i++){ 
    var id = "this" + i; 
    var s= document.getElementById(id); 
    s.innerHTML += id; 
    s.innerHTML += "<br/>"; 
} 

또한 toString js는 변환 할 필요가 없습니다.

바이올린 : (당신이 i = 0에서 시작하는 경우 <div id="this0">) 당신이 해당 요소가없는 경우 http://jsfiddle.net/75jah/

+1

굉장 해요. JS 작성에 익숙하지 않아 완벽하게 해결되었으므로 몇 분 안에 닫을 수 있습니다. –

1

, 다음 Uncaught TypeError: Cannot read property 'innerHTML' of null을 얻을 것이다 스크립트가 중단됩니다.