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 相关文章推荐
关于恒等于(===)和非恒等于(!==)
Aug 20 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
Feb 19 Javascript
让JavaScript和其它资源并发下载的方法
Oct 16 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
Nov 09 Javascript
关于数据与后端进行交流匹配(点亮星星)
Aug 03 Javascript
vue-router 组件复用问题详解
Jan 22 Javascript
详解小程序输入框闪烁及重影BUG解决方案
Aug 31 Javascript
Vue 中的受控与非受控组件的实现
Dec 17 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
JavaScript实现五子棋小游戏
Oct 26 Javascript
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
vue项目配置sass及引入外部scss文件
Apr 14 Vue.js
基于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中在PDO中使用事务(Transaction)
2011/05/14 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
Smarty保留变量用法分析
2016/05/23 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
async/await优雅的错误处理方法总结
2019/01/30 Javascript
Python字符串和文件操作常用函数分析
2015/04/08 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
keras 权重保存和权重载入方式
2020/05/21 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
python 实现端口扫描工具
2020/12/18 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
业务经理的岗位职责
2013/11/16 职场文书
年级组长自我鉴定
2014/02/22 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
预备党员自我评价范文
2015/03/04 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL
HTML中的表单元素介绍
2022/02/28 HTML / CSS
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server