jQuery多条件筛选如何实现


Posted in Javascript onNovember 04, 2015

本文实例讲述了jquery实现多条件筛选特效。分享给大家供大家参考。具体如下:
我们在电商平台购买商品时,在商品列表页根据品牌、款式、价格范围等条件进行筛选查询,当点击某个条件时,在页面上会显示用户所选择的条件集合,并且将对应的符合条件的商品信息展示出来。那么今天我们使用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="#">全部</a></dd>  
        <dd><a href="#">针织衫</a></dd>  
        <dd><a href="#">毛呢外套</a></dd>  
        <dd><a href="#">T恤</a></dd>  
        <dd><a href="#">羽绒服</a></dd>  
        <dd><a href="#">棉衣</a></dd>  
        <dd><a href="#">卫衣</a></dd>  
        <dd><a href="#">风衣</a></dd>  
      </dl>  
    </li>  
    <li class="select-list">  
      <dl id="select2">  
        <dt>裤装:</dt>  
        <dd class="select-all selected"><a href="#">全部</a></dd>  
        <dd><a href="#">牛仔裤</a></dd>  
        <dd><a href="#">小脚/铅笔裤</a></dd>  
        <dd><a href="#">休闲裤</a></dd>  
        <dd><a href="#">打底裤</a></dd>  
        <dd><a href="#">哈伦裤</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="css/style.css">  
<script type="text/javascript" src="js/jquery.js"></script>  
<script type="text/javascript" src="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如何实现多条件筛选功能,希望对大家的学习有所帮助。

Javascript 相关文章推荐
js根据日期判断星座的示例代码
Jan 23 Javascript
jquery动态改变div宽度和高度
Feb 09 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
浅谈jquery.fn.extend与jquery.extend区别
Jul 13 Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
Jun 12 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
Nov 21 Javascript
利用JS实现简单的瀑布流加载图片效果
Apr 22 Javascript
微信小程序基于本地缓存实现点赞功能的方法
Dec 18 Javascript
微信小程序商品详情页的底部弹出框效果
Nov 16 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
Jan 03 Javascript
Vue实现移动端拖拽交换位置
Jul 29 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
Nov 04 #Javascript
js数组去重的5种算法实现
Nov 04 #Javascript
解决js图片加载时出现404的问题
Nov 30 #Javascript
jquery实现的点击翻书效果代码
Nov 04 #Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
Nov 04 #Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
Nov 04 #Javascript
JS实现网页上随滚动条滚动的层效果代码
Nov 04 #Javascript
You might like
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
jquery选择器简述
2015/08/31 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
js module大战
2019/04/19 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Python批量启动多线程代码实例
2020/02/18 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
党员个人思想汇报
2013/12/28 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
继续教育个人总结
2015/03/03 职场文书
学术会议通知
2015/04/15 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL