用JS、HTML、CSS语言完成:从后端的data_list传给前端数据,以table形式显示;从table中搜索指定行,按照不同的属性搜索。具体是:用户首先可以选择属性,如姓名、年龄等,选择属性后,用户可以在输入框输入特定的姓名、年龄等进行搜索进行。最终只显示搜索结果,并能显示所有符合的结果而不是只显示第一条。写一段代码示例。
时间: 2024-04-16 16:29:22 浏览: 118
以下是使用JavaScript、HTML和CSS完成从后端的data_list传递数据给前端,并以表格形式显示,并实现按照不同属性搜索的示例代码:
HTML部分:
```html
<select id="searchProperty">
<option value="name">姓名</option>
<option value="age">年龄</option>
<!-- 添加其他属性选项 -->
</select>
<input type="text" id="searchInput" placeholder="输入搜索关键字">
<button id="searchButton">搜索</button>
<table id="dataTable">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<!-- 添加其他属性列 -->
</tr>
</thead>
<tbody id="dataBody">
<!-- 数据行将通过JavaScript动态生成 -->
</tbody>
</table>
```
CSS部分:
```css
#dataTable {
width: 100%;
border-collapse: collapse;
}
#dataTable th,
#dataTable td {
border: 1px solid #ddd;
padding: 8px;
}
#dataTable th {
background-color: #f2f2f2;
}
```
JavaScript部分:
```javascript
const searchProperty = document.getElementById('searchProperty');
const searchInput = document.getElementById('searchInput');
const searchButton = document.getElementById('searchButton');
const dataBody = document.getElementById('dataBody');
// 模拟后端传递的数据列表
const data_list = [
{ name: '张三', age: 25 },
{ name: '李四', age: 30 },
{ name: '王五', age: 28 },
// 添加其他数据项
];
// 初始化表格显示所有数据
function displayAllData() {
dataBody.innerHTML = '';
data_list.forEach((data) => {
const row = document.createElement('tr');
Object.values(data).forEach((value) => {
const cell = document.createElement('td');
cell.textContent = value;
row.appendChild(cell);
});
dataBody.appendChild(row);
});
}
// 根据搜索属性和关键字过滤数据并显示结果
function searchTable() {
const searchProp = searchProperty.value;
const searchKeyword = searchInput.value.toLowerCase();
dataBody.innerHTML = '';
data_list.forEach((data) => {
if (data[searchProp].toLowerCase().includes(searchKeyword)) {
const row = document.createElement('tr');
Object.values(data).forEach((value) => {
const cell = document.createElement('td');
cell.textContent = value;
row.appendChild(cell);
});
dataBody.appendChild(row);
}
});
}
// 绑定搜索按钮点击事件和输入框的回车键事件
searchButton.addEventListener('click', searchTable);
searchInput.addEventListener('keydown', (event) => {
if (event.key === 'Enter') {
searchTable();
}
});
// 初始化页面显示所有数据
displayAllData();
```
在上述示例代码中,我们首先定义了HTML部分,包括一个选择属性的下拉列表、一个搜索输入框、一个搜索按钮和一个数据表格。通过CSS样式对表格进行简单的样式设置。
在JavaScript部分,我们首先获取页面中的DOM元素,包括选择属性的下拉列表、搜索输入框、搜索按钮和数据表格的tbody。然后,我们模拟了从后端获取的数据列表。
在`displayAllData`函数中,我们使用`forEach`方法遍历数据列表,动态生成表格的每一行,并将其添加到tbody中。
在`searchTable`函数中,我们根据选择的属性和搜索关键字对数据进行过滤,并动态生成符合条件的表格行。
最后,我们将搜索按钮的点击事件和输入框的回车键事件绑定到`searchTable`函数,以便在用户点击搜索按钮或按下回车键时触发搜索逻辑。
通过这段代码,用户可以选择不同的属性,并在输入框中输入特定的关键字进行搜索,搜索结果将动态显示在表格中,并能显示所有符合条件的结果。初始加载时,表格将显示所有的数据。
阅读全文