2013-07-01 2 views
-1

Должно быть очень простым, но я получаю только результаты крикета Jimmy, и я ожидаю всех имен в тегах li. Спасибо за любую помощь.Использование цикла for с JSON

<ul id="members"></ul> 
<script> 
var teammembers = [ 
{"name":"John Doe", "profile":"/img/profile/user1.jpg", "position":"President", "email":"[email protected]", "phone":"242-abcd"}, 
{"name":"James Bond", "profile":"/img/profile/user2.jpg", "position":"Vice President", "email":"[email protected]", "phone":"242-0007"}, 
{"name":"Jimmy Cricket", "profile":"/img/profile/user3.jpg", "position":"Vice Cricket", "email":"[email protected]", "phone":"242-wxyz"} 
]; 

for (var i = 0; i < teammembers.length; i++) { 
    document.getElementById("members").innerHTML = "<li>" + teammembers[i].name; + "</li>" 
} 
</script> 

ответ

1

Вам нужно добавить к innerHTML, а не установить его. Вместо этого:

document.getElementById("members").innerHTML = "<li>" + teammembers[i].name; + "</li>" 

используют это (изменение составляет от использования = с помощью +=):

document.getElementById("members").innerHTML += "<li>" + teammembers[i].name; + "</li>" 
+0

спасибо! Я приму этот ответ, как только это позволит. – jaruesink

3

= знак здесь заменяет innerHTML на каждой итерации. Следовательно, вы видите последнее значение массива здесь.

Преобразуйте его в +=. Например,

document.getElementById("members").innerHTML += "<li>" + teammembers[i].name; + "</li>" 

+= добавит его.

Смежные вопросы