javascript - 如何通过属性名称将我的对象数组分别显示到我的 html 页面的表格中
解决方案
更新:我已将我之前的代码应用于您的searching
函数:
注意:我添加了id
一个tbody
:
<tbody id="myTBD">
const getCafes = () => {
const api =
"https://raw.githubusercontent.com/debojyoti/places-fake-rest-api/master/cafes.json";
return fetch(api).then((response) => {
return response.json();
});
};
var cafes = [];
getCafes().then((result) => {
cafes = Array.from(result.cafes);
// console.log(cafes[1]);
});
const getPlaces = () => {
const api =
"https://raw.githubusercontent.com/debojyoti/places-fake-rest-api/master/places.json";
return fetch(api).then((response) => {
return response.json();
});
};
var places = [];
getPlaces().then((result) => {
places = Array.from(result.places);
// console.log(places[1]);
});
function searching() {
let inp = document.getElementById("search").value;
inp = inp.toUpperCase();
var myTBD = document.getElementById("myTBD");
// Clear table rows
myTBD.innerHTML = '';
var result = calc(inp);
for (var i in result) {
// Create an empty <tr> element and add it to the end of the table:
var row = myTBD.insertRow(-1);
// Insert new cells (<td> elements) at the 1st and 2nd position of the "new" <tr> element:
var rowIndex = 0;
row.insertCell(rowIndex++).innerHTML = result[i].street_no;
row.insertCell(rowIndex++).innerHTML = result[i].name;
row.insertCell(rowIndex++).innerHTML = result[i].locality;
row.insertCell(rowIndex++).innerHTML = result[i].postal_code;
row.insertCell(rowIndex++).innerHTML = result[i].lat;
row.insertCell(rowIndex++).innerHTML = result[i].long;
}
}
function calc(inp) {
arr = [];
for (let i = 0; i < cafes.length; i++) {
if (cafes[i].name.toUpperCase().startsWith(inp) === true) {
let id1 = cafes[i].location_id;
// console.log('hi:'+inp);
for (let j = 0; j < places.length; j++) {
if (places[j].id === id1) {
var obj = Object.assign({}, places[j]);
obj["name"] = cafes[i].name;
delete obj.id;
arr.push(obj);
}
}
}
}
return arr;
}
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>California Cafe Directory</title>
<link rel="stylesheet" href="bootstrap.css">
<link rel="stylesheet" href="page.css">
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-12" id="header-wrapper">
<div class="container">
<div class="row">
<div class="col-12" id="header">
<h2>California Cafe Directory</h2>
</div>
<div class="col-12" id="search-wrapper">
<input id="search" type="text" oninput="searching()" placeholder="Search your favorite cafes!">
</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-12" id="table-wrapper">
<table>
<thead>
<tr class="table100-head">
<th class="column1">S No</th>
<th class="column2">Cafe Name</th>
<th class="column3">Address</th>
<th class="column4">Postal Code</th>
<th class="column5">Lat</th>
<th class="column6">Long</th>
</tr>
</thead>
<tbody id="myTBD">
<tr>
<td class="column1">1</td>
<td class="column2"><span id="col2"></span></td>
<td class="column3">45250 Worth Avenue, Unit A</td>
<td class="column4">201619</td>
<td class="column5">36.1152</td>
<td class="column6">117.521</td>
</tr>
<tr>
<td class="column1">2</td>
<td class="column2">Bazaar Cafe</td>
<td class="column3">45250 Worth Avenue, Unit A</td>
<td class="column4">201619</td>
<td class="column5">36.1152</td>
<td class="column6">117.521</td>
</tr>
<tr>
<td class="column1">3</td>
<td class="column2">Bazaar Cafe</td>
<td class="column3">45250 Worth Avenue, Unit A</td>
<td class="column4">201619</td>
<td class="column5">36.1152</td>
<td class="column6">117.521</td>
</tr>
<tr>
<td class="column1">4</td>
<td class="column2">Bazaar Cafe</td>
<td class="column3">45250 Worth Avenue, Unit A</td>
<td class="column4">201619</td>
<td class="column5">36.1152</td>
<td class="column6">117.521</td>
</tr>
<tr>
<td class="column1">5</td>
<td class="column2">Bazaar Cafe</td>
<td class="column3">45250 Worth Avenue, Unit A</td>
<td class="column4">201619</td>
<td class="column5">36.1152</td>
<td class="column6">117.521</td>
</tr>
<tr>
<td class="column1">6</td>
<td class="column2">Bazaar Cafe</td>
<td class="column3">45250 Worth Avenue, Unit A</td>
<td class="column4">201619</td>
<td class="column5">36.1152</td>
<td class="column6">117.521</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script src="solution.js"></script>
</body>
</html>
推荐阅读
- php - 在 WooCommerce 我的帐户订单自定义列中添加“支付订单”按钮
- c# - Newtonsoft.Json.JsonTextReader 解析值后遇到意外字符:
- xml - 从 XML 文件创建图表
- javascript - 错误消息:非法字符 JavsScript
- asp.net-mvc - 如何使用数据表一起搜索日期范围和多列
- opencv-python - 是否可以仅检测眼睛而无需使用 Opencv HAAR Casecade 面部?
- javascript - 这段 HTML5+CSS+JavaScript 代码有什么问题?
- apache - 重定向到另一个 URL 后显示上一个 URL
- javascript - 在material-ui v5中,您打算如何覆盖主题组件中不存在的属性样式
- google-cloud-platform - 如何在 GCP 钥匙串中存储 CloudSQL 客户端 SSL 证书