В настоящее время я получаю данные, которые мне нужно добавить в таблицу HTML, как только я ее получу.
Я пробовал несколько вещей, но я не могу динамически добавлять данные, как толькозагрузка страницы.
Я хочу добавить ее, используя Javascript или jQuery
Вот структура HTML:
<div>
<table cellspacing="0" cellpadding="0">
<thead>
<tr>
<th scope="col"><span>Email</span></th>
<th><span>Last Name</span></th>
<th><span>First Name</span></th>
<th><span>Role</span></th>
<th><span>Cell Phone User</span></th>
</tr>
</thead>
<tbody>
<tr>
<td scope="row" data-label="Email"></td>
<td data-label="Last Name"></td>
<td data-label="First Name"></td>
<td data-label="Role"></td>
<td data-label="Cell Phone User"></td>
</tr>
</tbody>
</table>
</div>
Вот пример того, как данные выглядят после того, как ихизвлечено:
[{
"id": 1,
"email": "janedoe@example.com",
"familyName": "Doe",
"givenName": "Jane",
"role": "admin",
"smsUser": true
},
{
"id": 2,
"email": "johndoe@example.com",
"familyName": "Doe",
"givenName": "John",
"role": "standard",
"smsUser": false
}]
Вот что я пробовал до сих пор:
Это мой прослушиватель событий для загрузки данных после загрузки страницы:
window.path = "http://localhost:3000/users";
// getUsers function plus any additional functions go here ...
const getUsers = options => {
let url = new URL(window.path);
if (options) {
url.search = new URLSearchParams(options)
}
return Promise.resolve(fetch(url))
}
document.addEventListener('DOMContentLoaded', () => {
/* SELECT DOM ELEMENTS*/
let table = document.querySelector('tbody');
let promise = getUsers({page=2, role:'admin'})
.then(data => {
var html = '<table>';
for( var j in data[0] ) {
html += '<th>' + j + '</th>';
}
html += '</tr>';
for( var i = 0; i < data.length; i++) {
html += '<tr>';
for( var j in data[i] ) {
html += '<td>' + data[i][j] + '</td>';
}
}
html += '</table>';
table.appendChild(html)
return table;
})
.catch(err => {
console.log('Error fetching from /users', err);
return null
})
})
Любая помощь приветствуется.