2010-03-17 108 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; 
}