2016-08-29 38 views
-2

這是一個基本的循環問題。如果我有一個簡單的for循環,例如:顯示循環迭代

function printMe() 
{ 
    for(var i = 0; i < 5; i++) 
    { 
     document.getElementById("text").innerHTML = i; 
    } 
}; 

printMe(); 

當我調用函數,只打印在循環5的最後一個數字可是,我怎樣才能讓它在打印循環的不斷迭代,從而最終列表爲0,1,2,3,4,5

+0

您需要編寫一些代碼來讀取現有值,然後使用新值和您想要的逗號對其進行修改。 – Quentin

+0

您一直在更換.innerHTML,但您需要追加它:'document.getElementById(「text」)。innerHTML + = i +「,」;' –

回答

1

由於您使用的是innerHTML = i,您將不斷覆蓋innerHTML的值。這意味着當循環完成運行時,該值將是最後一個值i

您想要使用+=i附加到現有值,並且您可能還希望在其之後添加空格以便它們不會粘在一起。

document.getElementById("text").innerHTML += i + " "; 

這是

document.getElementById("text").innerHTML = document.getElementById("text").innerHTML + i + " "; 

因此速記符號:讓舊值,添加新的價值,在innerHTML再次存放。

+0

非常感謝!當計時器用完時,將標記爲正確的答案 –

+0

@TheodoreSteiner歡迎您:-) –

0

的問題是你分配iinnerHTML每個循環(未追加+=),所以它是預期的行爲有唯一的最後一個輸出

嘗試以下將被罰款

function printMe() 
{ 
    for(var i = 0; i < 5; i++) 
    { 
     var innerHTML = document.getElementById("text").innerHTML; 
     document.getElementById("text").innerHTML += (innerHTML.length <= 0 ? "" : ", ") + i; 
    } 
}; 

printMe(); 

並且如果您還想打印5,則必須將for循環更改爲for (var i = 0; i < 6; i++)for (var i = 0; i <= 5; i++)

試一試https://jsfiddle.net/v1jnLw23/