1 回答
TA贡献1846条经验 获得超7个赞
我只是创建或使用通用 jQuery 插件函数将 JSON 数据转换为表元素。
另外,我建议使用fetch而不是$.ajax,因为它返回一个承诺,并且它是获取 API 数据的更现代的方式。
(($) => {
$.jsonToTable = function() {
let fields = Object.keys(data[0]);
return $('<table>')
.append($('<thead>').append($('<tr>')
.append(fields.map(field => {
return $('<th>').text(field);
}))))
.append($('<tbody>').append(data.map(record => {
return $('<tr>').append(fields.map(field => {
return $('<td>').text(record[field]);
}));
})));
};
})(jQuery)
const data = [
{ addr : 1, code : 1, create_at : 1, lat : 1, lng : 1, name : 1, stock_at : 1 },
{ addr : 2, code : 2, create_at : 2, lat : 2, lng : 2, name : 2, stock_at : 2 },
{ addr : 3, code : 3, create_at : 3, lat : 3, lng : 3, name : 3, stock_at : 3 },
{ addr : 4, code : 4, create_at : 4, lat : 4, lng : 4, name : 4, stock_at : 4 }
];
$('.wrap').append($.jsonToTable(data)); // Or use the button click method below...
$("#btn").click(function search(target) {
var word = target.value;
fetch("url" + word)
.then(response => response.json())
.then(json => $('.wrap').append($.jsonToTable(json)));
});
table { border-collapse: collapse; margin-top: 1em; }
table, th, td { border: thin solid grey; }
th, td { padding: 0.33em; }
thead tr { background: #D7D7D7 }
tbody tr:nth-child(even) { background: #F7F7F7; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="word" type="text" placeholder="test type">
<input type="button" id="btn" value="click">
<div class="wrap"></div>
- 1 回答
- 0 关注
- 81 浏览
添加回答
举报