jQuery装修案例分类条件筛选代码
在网站或应用程序中,我们经常会遇到需要对装修案例进行分类和筛选的需求。比如,我们可能需要根据装修风格、房屋类型或者装修费用来筛选案例。为了满足这个需求,我们可以使用jQuery来实现一个简单的分类条件筛选功能。
准备工作
在开始编写代码之前,我们需要先准备一些基本的资源。首先,我们需要一个包含装修案例信息的数据源,这可以是一个JSON文件或者通过AJAX从后端获取的数据。假设我们有一个JSON文件,结构如下:
[
{
"id": 1,
"name": "案例1",
"style": "现代",
"type": "公寓",
"cost": "10000"
},
{
"id": 2,
"name": "案例2",
"style": "简约",
"type": "别墅",
"cost": "20000"
},
{
"id": 3,
"name": "案例3",
"style": "欧式",
"type": "公寓",
"cost": "15000"
}
]
接下来,我们需要一个界面来展示装修案例和筛选条件。这个界面可以是一个简单的HTML页面,其中包含一个用于展示案例的容器,以及用于选择筛选条件的表单元素。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>装修案例分类条件筛选</title>
<!-- 引入jQuery库 -->
<script src="
<script src="script.js"></script>
<link rel="stylesheet" href="style.css">
</head>
<body>
装修案例分类条件筛选
<form id="filterForm">
<label for="styleSelect">风格:</label>
<select id="styleSelect">
<option value="">全部</option>
<option value="现代">现代</option>
<option value="简约">简约</option>
<option value="欧式">欧式</option>
</select>
<label for="typeSelect">类型:</label>
<select id="typeSelect">
<option value="">全部</option>
<option value="公寓">公寓</option>
<option value="别墅">别墅</option>
</select>
<label for="costRange">费用范围:</label>
<input type="text" id="costRange" placeholder="最低费用-最高费用">
<input type="submit" value="筛选">
</form>
<div id="caseContainer"></div>
</body>
</html>
实现筛选功能
在上面的HTML代码中,我们引入了一个名为script.js
的JavaScript文件,用于实现筛选功能。现在,我们来编写这个文件的代码。
$(document).ready(function() {
// 加载装修案例数据
$.getJSON('cases.json', function(data) {
displayCases(data);
});
// 监听筛选表单的提交事件
$('#filterForm').submit(function(event) {
event.preventDefault(); // 阻止表单的默认提交行为
// 获取筛选条件的值
var style = $('#styleSelect').val();
var type = $('#typeSelect').val();
var costRange = $('#costRange').val().split('-');
var minCost = parseInt(costRange[0]) || 0;
var maxCost = parseInt(costRange[1]) || Infinity;
// 根据筛选条件过滤案例数据
var filteredCases = cases.filter(function(case) {
return (style === '' || case.style === style) &&
(type === '' || case.type === type) &&
(case.cost >= minCost && case.cost <= maxCost);
});
displayCases(filteredCases);
});
});
// 展示装修案例
function displayCases(cases) {
var caseContainer = $('#caseContainer');
caseContainer.empty(); // 清空容器
if (cases.length === 0) {
caseContainer.text('没有符合条件的案例。');
} else {
cases.forEach(function(case) {
var caseElement = $('<div class="case"></div