如何改进 JSON 数据的显示
How to improve display of JSON data
我是JSON和JS的新手,并且已经生成了一个JSON文件以通过.onclick事件显示数据。到目前为止,我已经生成了 JSON 数据并将其显示在屏幕上,但现在我想以表格格式设置它的样式,以便能够更清楚地看到元素。任何帮助都会很棒!
这是我的JS:
addEventListener("load", set_up_click_handler);
function set_up_click_handler() {
var url = 'http://localhost/Advanced_Web/Final_Project/data/exhibitions.json';
var button = document.getElementById("button");
button.addEventListener("click", click_handler);
function click_handler(event) {
var request = new XMLHttpRequest();
request.open('GET', url);
request.addEventListener("load", response_handler);
request.send();
};
function response_handler() {
if (this.status == 200) {
var json = this.responseText;
var data = JSON.parse(json);
window.localStorage.setItem('exhibitions', JSON.stringify(data));
var div = document.createElement("div");
div.setAttribute("id", "dateOfExhibition");
var list = $('<ul/>');
for (var item in data) {
list.append(
$("<li />").text(item + ": " + data[item])
);
}
$('#exhibitions').append(list);
} else {
alert('An error has occurred.');
}
}
}
如果今天有人感到特别慈善,我也会遇到以下问题:每次我点击我的按钮时,列表都会再次显示出来。如何重新设计代码,使其仅显示一次?
在不真正了解所需表格样式的情况下,请参阅将数据格式化为显示标题的表格的示例,具有空数组的地址也没有在此函数中处理
var jsonData = { "id": "Pavlov's Dog", "dateOfExhibition": "2018-07-08T22:00:00.000Z", "address": [], "street": "Bergmannstrasse 29", "city": "Berlin", "country": "Deutschland", "zip": "10473"};
function createTable(jsonData){
//create headers
var head = $("<tr />");
var keys = Object.keys(jsonData);
keys.forEach(function(key){
head.append($("<th>"+ key + "</th>"));
});
$("#exhibitionTable").append(head);
//append data (if you have multiple objects in an array like this wrap this in a forEach)
var row = $("<tr />");
for (var item in jsonData){
row.append($("<td>"+ jsonData[item] + "</td>"));
}
$("#exhibitionTable").append(row);
}
$(document).ready(function(){
createTable(jsonData);
});
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<table id="exhibitionTable">
</table>
</body>
</html>
相关文章:
- 如何通过所选索引(AngularJS)在模态弹出窗口中显示数据
- Angular渲染元素,但不渲染;t显示数据
- 如何在分页事件中突出显示数据表中的单词
- Angular JS和Node路由/布线-仅在页面刷新后显示数据
- MVC中关于表的自定义工具提示-每行显示数据
- Highcharts:根据表单输入动态显示数据
- 重置transform:rotate(),方法是移除并追加在追加和重绘图表后未显示数据的画布
- jqGrid无法显示数据
- 显示数据的最快方式
- 如何从jquery日期和时间选择器中选择和显示数据
- 我的复选框没有't使用的循环来显示数据
- 如何在状态输入ui路由器时立即显示模板,然后当承诺被解决时显示数据
- 车把模板不显示数据
- 如何完成表单后使用 AJAX 重定向并在其他页面上显示数据
- Html5 Web 存储未在第二页中显示数据
- ASP.Net VB - 显示数据折叠样式
- 正确禁止显示数据表中的警告
- 在使用 JS 进行选择时在文本框中显示数据
- 如何使用 C# 和 Angular js 在视图上显示数据
- 在轨道上的 Ruby 文本字段中动态显示数据