Проблема с перезаписью getElementById в Javascript - PullRequest
0 голосов
/ 17 марта 2010

У меня простой вопрос относительно Javascript. Я пытаюсь напечатать в цикле некоторые значения для контейнера div. Проблема в том, что вместо печати значения несколько раз в цикле, каждый раз, когда оно перезаписывается, и в результате я получаю только одно значение. Смотрите код ниже:

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;
}

Любые идеи приветствуются. Спасибо.

Ответы [ 3 ]

4 голосов
/ 17 марта 2010

Добавить, не назначать.

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);
}
1 голос
/ 17 марта 2010
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 голос
/ 17 марта 2010

Вы получаете только одно значение, потому что вы устанавливаете свойство innerHTML во время каждой итерации цикла, а не добавляете его.Попробуйте использовать content.innerHTML += html;.

...