我试图用jQuery和json创建一个动态数据表。我试图确定键,并将它们设置为标题,然后将键中的值设置为表中的行。如何用json数据和ajax创建动态jQuery数据表?
到目前为止,我的代码是:
<script type="text/javascript">
$('#action-button').click(function() {
$.ajax({
url: 'https://api.myjson.com/bins/1oaye',
data: {
format: 'json'
},
error: function() {
$('#info').html('<p>An error has occurred</p>');
},
dataType: 'json',
success: function(data) {
// EXTRACT VALUE FOR HTML HEADER.
var col = [];
for (var i = 0; i < data.length; i++) {
for (var key in data[i]) {
if (col.indexOf(key) === -1) {
col.push(key);
}
}
}
// CREATE DYNAMIC TABLE.
var table = document.createElement("table");
// CREATE HTML TABLE HEADER ROW USING THE EXTRACTED HEADERS ABOVE.
var tr = table.insertRow(-1); // TABLE ROW.
for (var i = 0; i < col.length; i++) {
var th = document.createElement("th"); // TABLE HEADER.
th.innerHTML = col[i];
tr.appendChild(th);
}
// ADD JSON DATA TO THE TABLE AS ROWS.
for (var i = 0; i < data.length; i++) {
tr = table.insertRow(-1);
for (var j = 0; j < col.length; j++) {
var tabCell = tr.insertCell(-1);
tabCell.innerHTML = data[i][col[j]];
}
}
// FINALLY ADD THE NEWLY CREATED TABLE WITH JSON DATA TO A CONTAINER.
var divContainer = document.getElementById("showData");
divContainer.innerHTML = "";
divContainer.appendChild(table);
},
type: 'GET'
});
});
</script>
,但我不断收到读取错误:如何创建一个动态数据
(index):80 Uncaught TypeError: Cannot set property 'innerHTML' of null
表只是基于json数据返回集合将表格中的所有内容都转换为表格中的值?
如果80是行号是哪一行是我在你的发布代码中? – mm759
我刚刚将最后一个'div'改为'
',这似乎解决了这个问题?看[这个更新到小提琴](https://jsfiddle.net/wpLcfw7p/1/) – Dhananjay