Задать вопрос
jun_dev
@jun_dev
Frontend-developer

Как вывести элементы массива JSON?

Дан массив
[
  {
    "id": 1,
    "name": "Allen, Miss. Elisabeth Walton",
    "age": 29,
  },
  {
    "id": 2,
    "name": "Allison, Master. Hudson Trevor",
    "age": 50,
  }
]


Код JS
let xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
    if (this.readyState == 4 && this.status == 200) {
        let myArr = JSON.parse(this.responseText);

        myArr.forEach((elem, index, arr) => {
            console.log(elem.name);
        document.querySelector('.wrapper').innerHTML = elem.name;
        });

    }
};
xmlhttp.open("GET", "http://***/data.json", true);
xmlhttp.send();


Необходимо вывести к примеру все элементы name в столбик.
Я не могу понять почему выводит только один пункт.

5eeb555fc2fc7475369929.png
  • Вопрос задан
  • 912 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега JavaScript
Руководитель frontend направления, предприниматель
1. (elem, index, arr) второй и третий параметр необязательны.
2. .innerHTML — перезаписывает в тот же элемент все, что ты выводишь. Используй appendChild хотя бы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@xenonhammer
он выводит, просто каждый раз перезаписывает
Ответ написан
Комментировать
@Rerurk
fetch('"http://***/data.json"', {
method: 'GET',
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
}).then(r=>r.json()).then(r=>{

r.forEach(function (item) {
let span=document.createElement('span');
span.innerText=item.name;
document.body.appendChild(span);
document.body.appendChild(document.createElement('br'));

})
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы