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 相关文章推荐
基于jQuery的为attr添加id title等效果的实现代码
Apr 20 Javascript
关于textarea提交的内容无法换行的解决办法
Apr 09 Javascript
JS 有趣的eval优化输入验证实例代码
Sep 22 Javascript
jquery实现在光标位置插入内容的方法
Feb 05 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
Javascript中的 “&amp;” 和 “|” 详解
Feb 02 Javascript
整理关于Bootstrap警示框的慕课笔记
Mar 29 Javascript
基于vue配置axios的方法步骤
Nov 09 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
Apr 25 Javascript
小程序根据手机机型设置自定义底部导航距离
Jun 04 Javascript
vue - vue.config.js中devServer配置方式
Oct 30 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 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
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
取选中的radio的值
2010/01/11 Javascript
range 标准化之获取
2011/08/28 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
深入理解vue中的$set
2017/06/01 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
js中switch语句的学习笔记
2020/03/25 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
openLayer4实现动态改变标注图标
2020/08/17 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
六行python代码的爱心曲线详解
2019/05/17 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
internal修饰符起什么作用
2013/12/16 面试题
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
国际贸易专业求职信
2014/06/04 职场文书
运动会口号16字
2014/06/07 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
教师节横幅标语
2014/10/08 职场文书
安全教育第一课观后感
2015/06/17 职场文书
小学副班长竞选稿
2015/11/21 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技