#javascript #json #html-table #fetch
#javascript #json #html-таблица #выборка
Вопрос:
Я начинаю изучать JavaScript, и у меня возникают некоторые трудности с отображением всех данных, которые я получил из Json PlaceHolder fake API, в моей таблице html. Используя приведенный ниже код, мне удается отобразить только последний элемент из самого API, а не все элементы, как я хотел.
Может кто-нибудь помочь мне разобраться, как мне на самом деле поступить?
Вот код:
fetch('https://jsonplaceholder.typicode.com/posts')
.then((response) => response.json())
.then((json) => json.forEach(tableElements)
)
function tableElements (element, index, arr){
arr[index] = document.querySelector('#posts-table tbody').innerHTML =
`<td>${element.userId}</td>
<td>${element.id}</td>
<td>${element.title}</td>
<td>${element.body}</td>`
}
Комментарии:
1. При
x.innerHTML = y;
многократном вызове вы продолжаете перезаписывать содержимое x. Будет виден только последний y. Вам нужно обернуть ячейки таблицы в<tr>
и</tr>
и=
вместо этого использовать оператор, который добавляет то, что находится справа, к тому, что находится слева от него.
Ответ №1:
Ваш код отображает одни данные, потому что при выполнении цикла он перезаписывает предыдущий, когда он выполняет цикл через json, измените opperand на =
и оберните столбцы таблицы строками <tr>... </tr>
Попробуйте этот код здесь
fetch('https://jsonplaceholder.typicode.com/posts')
.then((response) => response.json())
.then((json) => json.forEach(tableElements)
)
function tableElements (element, index, arr){
arr[index] = document.querySelector('#posts-table tbody').innerHTML =
`<tr>
<td>${element.userId}</td>
<td>${element.id}</td>
<td>${element.title}</td>
<td>${element.body}</td>
</tr>`
}
Комментарии:
1. Вау, теперь я понял! Это сработало. Спасибо!!