【发布时间】:2019-07-05 04:05:57
【问题描述】:
我想使用 JSON 仅显示 Linda 的详细信息。但是,我对如何做到这一点一无所知。需要一些建议,谢谢!
输出应该只显示更新后的表格,其中包含“Linda”,而不是我当前的输出。
实际问题: 使用JSON,修改Linda的手机为88885555,只显示Linda的详细信息。
我的员工对象应该来自 .json 文件,但我找不到要插入这篇文章的格式。因此,我将它合并到我的 .js 文件中。
var employees = [
{
"Name": "Tony",
"Mobile": 99221111,
"Email": "tony@json.com"
},
{
"Name": "Linda",
"Mobile": 98981111,
"Email": "linda@json.com"
},
{
"Name": "Patrick",
"Email": "patrick@json.com"
},
{
"Name": "Isabella",
"Mobile": 99552222
}
];
employees[1].Mobile = 88885555;
function buildHtmlTable() {
var columns = addAllColumnHeaders(employees);
for (var i = 0; i < employees.length; i++) {
var row$ = $('<tr/>');
for (var colIndex = 0; colIndex < columns.length; colIndex++) {
var cellValue = employees[i][columns[colIndex]];
if (cellValue == null) {
cellValue = "";
}
row$.append($('<td/>').html(cellValue));
}
$("#employeeTable").append(row$);
}
}
// Adds a header row to the table and returns the set of columns.
// Need to do union of keys from all records as some records may not contain
// all records
function addAllColumnHeaders(employees) {
var columnSet = [];
var headerTr$ = $('<tr/>');
for (var i = 0; i < employees.length; i++) {
var rowHash = employees[i];
for (var key in rowHash) {
if ($.inArray(key, columnSet) == -1) {
columnSet.push(key);
headerTr$.append($('<th/>').html(key));
}
}
}
$("#employeeTable").append(headerTr$);
return columnSet;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body onLoad="buildHtmlTable()">
<table id="employeeTable" border="1"></table>
</body>
【问题讨论】:
-
你所说的“显示”是什么意思?在过程中的哪个阶段?最初,还是基于用户操作?
-
嗨,这意味着应该显示更新的表格而不是当前的输出。
-
是否应该先填充
<table>,然后只显示包含"Linda"的行?或者,仅使用与 "Linda" 关联的数据对应的值填充<table>? -
第一个选项,填充所有内容,但只显示包含“Linda”的行
标签: javascript html arrays json