jQuery 是一个快速、小巧且功能丰富的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。多条件筛选是指根据多个条件对数据进行过滤和显示的过程。
假设我们有一个表格,包含姓名、年龄和城市三列,我们希望通过多条件筛选来显示符合条件的行。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery 多条件筛选</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<input type="text" id="nameFilter" placeholder="筛选姓名">
<input type="number" id="ageFilter" placeholder="筛选年龄">
<input type="text" id="cityFilter" placeholder="筛选城市">
<table id="dataTable">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>城市</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>25</td>
<td>北京</td>
</tr>
<tr>
<td>李四</td>
<td>30</td>
<td>上海</td>
</tr>
<tr>
<td>王五</td>
<td>28</td>
<td>北京</td>
</tr>
<!-- 更多数据 -->
</tbody>
</table>
<script>
$(document).ready(function() {
function filterTable() {
var name = $('#nameFilter').val().toLowerCase();
var age = $('#ageFilter').val();
var city = $('#cityFilter').val().toLowerCase();
$('#dataTable tbody tr').each(function() {
var row = $(this);
var rowName = row.find('td:first').text().toLowerCase();
var rowAge = parseInt(row.find('td:eq(1)').text());
var rowCity = row.find('td:last').text().toLowerCase();
if ((name === '' || rowName.indexOf(name) > -1) &&
(age === '' || (isNaN(age) || rowAge == age)) &&
(city === '' || rowCity.indexOf(city) > -1)) {
row.show();
} else {
row.hide();
}
});
}
$('#nameFilter, #ageFilter, #cityFilter').on('input', filterTable);
});
</script>
</body>
</html>
debounce
或 throttle
技术减少筛选函数的调用频率。通过以上方法,可以有效地实现 jQuery 多条件筛选功能,并解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云