jQuery遍历DOM节点操作之filter()方法详解
362
2024-03-08
本文实例讲述了jquery实现多条件筛选特效。分享给大家供大家参考。具体如下:
我们在电商平台购买商品时,在商品列表页根据品牌、款式、价格范围等条件进行筛选查询,当点击某个条件时,在页面上会显示用户所选择的条件集合,并且将对应的符合条件的商品信息展示出来。那么今天我们使用jQuery来实现这一前端效果。
运行效果图:
HTML
首先,我们将查询条件分类,在页面中布置条件容器li.select-list和已选择的条件容器div.select-result。
<ul class="select"> <li class="select-list"> <dl id="select1"> <dt>上装:</dt> <dd class="select-all selected"><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">全部</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">针织衫</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">毛呢外套</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">T恤</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">羽绒服</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">棉衣</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">卫衣</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">风衣</a></dd> </dl> </li> <li class="select-list"> <dl id="select2"> <dt>裤装:</dt> <dd class="select-all selected"><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">全部</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">牛仔裤</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">小脚/铅笔裤</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">休闲裤</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">打底裤</a></dd> <dd><a href="http://www.gimoo.net/t/1904/5cc16901bca24.html">哈伦裤</a></dd> </dl> </li> <li class="select-result"> <dl> <dt>已选条件:</dt> <dd class="select-no">暂时没有选择过滤条件</dd> </dl> </li> </ul>
布置好内容后,给页面内容加上css样式以及加载相关js。
<link rel="stylesheet" type="text/css" href="http://www.gimoo.net/t/1904/css/style.css"> <script type="text/javascript" src="http://www.gimoo.net/t/1904/js/jquery.js"></script> <script type="text/javascript" src="http://www.gimoo.net/t/1904/js/script.js"></script>
jQuery
当用户点击任意条件时,标记当前选中状态,相邻条件取消选中状态,并且更新已选条件容器内容,请看代码:
$(document).ready(function() { $("#select1 dd").click(function() { $(this).addClass("selected").siblings().removeClass("selected"); if ($(this).hasClass("select-all")) { $("#selectA").remove(); } else { var copyThisA = $(this).clone(); if ($("#selectA").length > 0) { $("#selectA a").html($(this).text()); } else { $(".select-result dl").append(copyThisA.attr("id", "selectA")); } } }); $("#select2 dd").click(function() { $(this).addClass("selected").siblings().removeClass("selected"); if ($(this).hasClass("select-all")) { $("#selectB").remove(); } else { var copyThisB = $(this).clone(); if ($("#selectB").length > 0) { $("#selectB a").html($(this).text()); } else { $(".select-result dl").append(copyThisB.attr("id", "selectB")); } } }); $("#selectA").live("click", function() { $(this).remove(); $("#select1 .select-all").addClass("selected").siblings().removeClass("selected"); }); $("#selectB").live("click", function() { $(this).remove(); $("#select2 .select-all").addClass("selected").siblings().removeClass("selected"); }); $(".select dd").live("click", function() { if ($(".select-result dd").length > 1) { $(".select-no").hide(); } else { $(".select-no").show(); } }); });
实际应用中,我们要结合后端程序,实现帅选条件时,页面响应的内容也会变化,有兴趣的同学可以尝试下。
以上就是本文的全部内容,告诉大家js如何实现多条件筛选功能,希望对大家的学习有所帮助。
#免责声明#
本站[绿夏技术导航]提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序或内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件[admin@lxwl520.com]与我们联系进行删除处理。敬请谅解!