2014-02-18 102 views
0

我覺得我可能在這裏犯了一個根本性的錯誤。我希望有人能幫助我。Javascript:打印Y,X倍

function countdown() { 

    x = 5; 

    for (i = x; i > 0; i--) { 
    document.getElementById('display').innerHTML = (i + " "); 
    } 

} 

這是一個非常小的簡單複製問題,我有。

我有一個很長的功能。在這個函數中是一個變量,在這種情況下:X.

我想插入一些元素(在這種情況下:#display)X次的次數。

我想最好的方法是用for循環,從X開始倒數1,每次插入我想要的字符串。

但是當它運行時,它只返回1.(我希望它在這種情況下返回「5 4 3 2 1」)。

請有人向我解釋爲什麼這不起作用?幾個小時以來,我一直在大腦中徘徊。

+0

你可能是指''innerHTML + = i +「」'' – Indy

回答

3

因爲你是在每次迭代中通過給innerHTML分配一個新值來覆蓋元素的內容。你不得不代替添加:

document.getElementById('display').innerHTML += (i + " "); 
//           ^

這是一樣的

document.getElementById('display').innerHTML = 
    document.getElementById('display').innerHTML + (i + " "); 

當然會更好,如果你只是建立在字符串中的環路,並設置循環後的內容:

var content = ''; 

for (i = x; i > 0; i--) { 
    content += (i + " "); 
} 

document.getElementById('display').innerHTML = content; 

這樣可以避免在每次迭代中搜索文檔中的元素。但是.innerHTML只是在某種程度上有用,你應該也看看DOM操作函數(如.appendChild),一旦你開始做更多的演化操作。

+0

你用五秒鐘的時間擊敗了我!無論如何+1 – rvighne

+0

非常感謝! :)並感謝提示:) – user3321463

相關問題