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 相关文章推荐
合并table相同单元格的jquery插件分享(很精简)
Jun 20 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
May 09 Javascript
Ionic如何创建APP项目
Jun 03 Javascript
JS实现复制内容到剪贴板功能
Feb 05 Javascript
纯js代码生成可搜索选择下拉列表的实例
Jan 11 Javascript
浅谈Vue Element中Select下拉框选取值的问题
Mar 01 Javascript
react中使用swiper的具体方法
May 15 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
Sep 25 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
Oct 10 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
Nov 26 Javascript
使用Vue实现简单计算器
Feb 25 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开发工具之vs2005图解
2008/01/12 PHP
php SQL之where语句生成器
2009/03/24 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
Smarty保留变量用法分析
2016/05/23 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
python 求定积分和不定积分示例
2019/11/20 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
Python对象的属性访问过程详解
2020/03/05 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
西班牙在线宠物商店:zooplus.es
2017/02/24 全球购物
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
支部组织生活会方案
2014/06/10 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
综合管理员岗位职责
2015/02/11 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书