Ric*_*ano 3 javascript jquery html-table
我有一个数组和一个对象:
labels = ['ID','Name'];
object = {
["id": "1", 'name': "richard"],
["id": "2", 'name': "santos"]
};
Run Code Online (Sandbox Code Playgroud)
我必须创建一个这样的表:
<table>
<thead>
<tr>
<td>ID</td>
<td>Name</td>
</tr>
</thead>
<tbody>
<tr>
<td>Richard</td>
<td>Santos</td>
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)
问题是:
“对象”变量有时可能有不同的键名,所以我必须用其他对象动态创建这个表,我整天都在尝试这样做但没有成功,有人可以帮助我吗?我是 Javascript 的新手。obs:标签和对象变量始终具有相同的大小。
某种物体。
var labels = ['ID','NOME'];
var object = {
["id": "1", 'nome': "richard"],
["id": "2", 'nome': "adriana"]
};
var labels = ['ID','NAME', 'PLATE'];
var object = {
["id": "1", 'nome': "jetta", 'plate': "DFG-1222"],
["id": "2", 'nome': "fusion", 'plate': "DFF-3342"]
};
Run Code Online (Sandbox Code Playgroud)
一开始有两个问题:
之后,这是我根据输入数据以编程方式创建表的方法:
function buildTable(labels, objects, container) {
var table = document.createElement('table');
var thead = document.createElement('thead');
var tbody = document.createElement('tbody');
var theadTr = document.createElement('tr');
for (var i = 0; i < labels.length; i++) {
var theadTh = document.createElement('th');
theadTh.innerHTML = labels[i];
theadTr.appendChild(theadTh);
}
thead.appendChild(theadTr);
table.appendChild(thead);
for (j = 0; j < objects.length; j++) {
var tbodyTr = document.createElement('tr');
for (k = 0; k < labels.length; k++) {
var tbodyTd = document.createElement('td');
tbodyTd.innerHTML = objects[j][labels[k].toLowerCase()];
tbodyTr.appendChild(tbodyTd);
}
tbody.appendChild(tbodyTr);
}
table.appendChild(tbody);
container.appendChild(table);
}
var labels1 = ['ID', 'Name'];
var objects1 = [
{"id": "1", 'name': "richard"},
{"id": "2", 'name': "santos"}
];
var labels2 = ['ID', 'NOME'];
var objects2 = [
{"id": "1", 'nome': "richard"},
{"id": "2", 'nome': "adriana"}
];
var labels3 = ['ID', 'NAME', 'PLATE'];
var objects3 = [
{"id": "1", 'name': "jetta", 'plate': "DFG-1222"},
{"id": "2", 'name': "fusion", 'plate': "DFF-3342"}
];
buildTable(labels1, objects1, document.getElementById('a'));
buildTable(labels2, objects2, document.getElementById('b'));
buildTable(labels3, objects3, document.getElementById('c'));Run Code Online (Sandbox Code Playgroud)
table {
border-collapse: collapse;
}
th, td {
border: 1px solid black;
}Run Code Online (Sandbox Code Playgroud)
<div id="a"><p>Table 1</p></div>
<div id="b"><p>Table 2</p></div>
<div id="c"><p>Table 3</p></div>Run Code Online (Sandbox Code Playgroud)