2010-03-17 109 views
0

我有一個關於Javascript的簡單問題。我試圖在循環中打印一些值給div容器。問題在於,在一個循環中多次打印值,每次被覆蓋,結果只有一個值。請參閱下面的代碼:Javascript getElementById覆蓋問題

for (i=0; i<json.Locations.length; i++) { 
    var location = json.Locations[i]; 
    var content = document.getElementById('eventsnearby');              
    var html = location.name; 
    content.innerHTML = html; 
} 

任何想法的歡迎。謝謝。

+1

如果您喜歡David Dorward的回答,您應該通過點擊回答旁邊的複選標記來接受它。 – jessegavin 2010-03-17 17:35:17

回答

4

追加,不要分配。

content.innerHTML += html; 

更好的是,使用標準的DOM。

var content = document.getElementById('eventsnearby');               
for (var i = 0; i < json.Locations.length; i++) { 
    var text = json.Locations[i].name; 
    var node = document.createTextNode(text); 
    content.appendChild(node); 
} 
+0

它的工作原理。非常感謝。 – Vonder 2010-03-17 16:16:23

1

您只會得到一個值,因爲您在每次循環迭代過程中都設置了innerHTML屬性,而不是附加到它。嘗試使用content.innerHTML += html;

1
for (i=0; i<json.Locations.length; i++) { 
var location = json.Locations[i]; 

var content = document.getElementById('eventsnearby');              
var html = location.name; 
content.innerHTML += html; 
}