使用 JavaScript 和 Fetch API 实现搜索功能的完整例子有一个搜索框的 HTML 元素,并将数据以表格的形式渲染到页面上
时间: 2024-04-16 18:28:24 浏览: 184
当然,下面是一个完整的例子,使用 JavaScript 和 Fetch API 实现搜索功能,并将数据以表格的形式渲染到页面上:
```html
<!DOCTYPE html>
<html>
<head>
<title>搜索功能示例</title>
</head>
<body>
<input type="text" id="search-input" placeholder="请输入搜索关键词">
<button id="search-btn">搜索</button>
<table id="search-results">
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>价格</th>
</tr>
</thead>
<tbody></tbody>
</table>
<script>
const searchInput = document.getElementById('search-input');
const searchBtn = document.getElementById('search-btn');
const searchResults = document.getElementById('search-results').getElementsByTagName('tbody')[0];
searchBtn.addEventListener('click', performSearch);
function performSearch() {
const keyword = searchInput.value;
const url = `/api/search?keyword=${encodeURIComponent(keyword)}`;
fetch(url)
.then(response => response.json())
.then(data => {
renderSearchResults(data);
})
.catch(error => {
console.error('Error:', error);
});
}
function renderSearchResults(data) {
// 清空之前的搜索结果
searchResults.innerHTML = '';
// 遍历数据并添加到表格中
for (const item of data) {
const row = document.createElement('tr');
const idCell = document.createElement('td');
const nameCell = document.createElement('td');
const priceCell = document.createElement('td');
idCell.textContent = item.id;
nameCell.textContent = item.name;
priceCell.textContent = item.price;
row.appendChild(idCell);
row.appendChild(nameCell);
row.appendChild(priceCell);
searchResults.appendChild(row);
}
}
</script>
</body>
</html>
```
在这个例子中,我们首先在 HTML 中添加了一个搜索框和一个搜索按钮。当用户点击搜索按钮时,会触发 `performSearch` 函数。
在 `performSearch` 函数中,我们获取搜索框的值,并构建请求 URL。然后使用 Fetch API 发送 GET 请求到后端的搜索接口。
在接收到后端返回的数据后,我们调用 `renderSearchResults` 函数。该函数首先清空之前的搜索结果,然后遍历每个搜索结果项,并将其添加到表格中。
注意,这只是一个简单的示例,实际项目中可能还需要考虑输入防抖、分页、错误处理等其他方面的逻辑,以及一些样式和交互方面的优化。另外,后端的搜索接口也需要根据前端的请求参数来处理搜索逻辑。具体实现方式可能会因技术栈和框架而有所不同,但核心思路是通过发送 HTTP 请求来获取符合搜索条件的数据,并将其渲染到页面上。
阅读全文