jQuery 是一个快速、小巧且功能丰富的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。多条件筛选是指根据多个条件对数据进行过滤和显示的过程。
假设我们有一个包含多个商品的列表,每个商品有名称、价格和类别三个属性。我们希望根据用户输入的多个条件进行筛选。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<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="priceFilter" placeholder="按价格筛选">
<select id="categoryFilter">
<option value="">所有类别</option>
<option value="电子产品">电子产品</option>
<option value="服装">服装</option>
<option value="食品">食品</option>
</select>
<ul id="productList">
<li data-name="手机" data-price="3000" data-category="电子产品">手机 - ¥3000</li>
<li data-name="衬衫" data-price="200" data-category="服装">衬衫 - ¥200</li>
<li data-name="面包" data-price="10" data-category="食品">面包 - ¥10</li>
<!-- 更多商品 -->
</ul>
<script>
$(document).ready(function() {
function filterProducts() {
var name = $('#nameFilter').val().toLowerCase();
var price = $('#priceFilter').val();
var category = $('#categoryFilter').val();
$('#productList li').each(function() {
var $this = $(this);
var productName = $this.data('name').toLowerCase();
var productPrice = parseInt($this.data('price'));
var productCategory = $this.data('category');
if ((name === '' || productName.includes(name)) &&
(price === '' || (price !== '' && productPrice <= price)) &&
(category === '' || productCategory === category)) {
$this.show();
} else {
$this.hide();
}
});
}
$('#nameFilter, #priceFilter, #categoryFilter').on('input change', filterProducts);
});
</script>
</body>
</html>
通过以上方法,可以有效地实现 jQuery 多条件筛选功能,并解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云