[英]Fill table with json data
I want to fill a table using the data from a json file in the next order: key, value and input 我想按以下顺序使用json文件中的数据填充表格:键,值和输入
eg row1- (serverIP|12.34.56.78.90|input) row2- (serverName|master1|input)... 例如row1-(serverIP | 12.34.56.78.90 | input)row2-(serverName | master1 | input)...
I can't figure out how to do it. 我不知道该怎么做。 Any help is appreciated
任何帮助表示赞赏
Json
{
"original":
{
"serverIP":"12.34.56.78.90",
"serverName":"master1"
}
}
html/js
<table id="table">
<tr>
<th>KEY</th>
<th>VALUE</th>
<th>INPUT</th>
</tr>
</table>
<script>
fetch('data.json')
.then(response => response.json())
.then(data => {
buildTemplate(data);
})
.catch(error => console.error(error))
const buildTemplate = (data) => {
const table = document.getElementById('table');
const tbody = document.createElement("tbody");
const tr = document.createElement('tr');
for (const key in data.original) {
if (data.original.hasOwnProperty(key)) {
const element = key;
let td1 = document.createElement('td');
td1.innerText = element;
tr.appendChild(td1);
for (const key in data.original) {
if (data.original.hasOwnProperty(key)) {
const element = data.original[key];
let td2 = document.createElement('td');
td2.innerText = data.original[key];
let td3 = document.createElement('td');
let input = document.createElement('input');
td3.appendChild(input);
tr.appendChild(td2);
tr.appendChild(td3);
tbody.appendChild(tr);
table.appendChild(tbody);
}
}
}
}
}
</script>
This works for me (I deleted fetch, pass json straight away). 这对我有用(我删除了fetch,立即传递json)。 Here is the function:
这是函数:
const buildTemplate = (data) => {
const table = document.getElementById('table');
const tbody = document.createElement("tbody");
for (const key in data.original) {
if (data.original.hasOwnProperty(key)) {
let tr = document.createElement('tr');
let td1 = document.createElement('td');
td1.innerText = key;
tr.appendChild(td1);
let td2 = document.createElement('td');
td2.innerText = data.original[key];
tr.appendChild(td2);
let td3 = document.createElement('td');
let input = document.createElement('input');
td3.appendChild(input);
tr.appendChild(td3);
tbody.appendChild(tr);
table.appendChild(tbody);
}
}
}
Link to bin: https://jsbin.com/toguxocihe/2/edit?html,js,output 链接到bin: https : //jsbin.com/toguxocihe/2/edit?html,js,输出
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.