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如何实现多条件筛选功能,希望对大家的学习有所帮助。

(0)

相关推荐

  • mysql筛选GROUP BY多个字段组合时的用法分享

    想实现这样一种效果如果使用group by一个条件的话,得到的结果会少了很多,如何多个条件组合筛选呢 复制代码 代码如下: group by fielda,fieldb,fieldc... 循环的时候可以通过判断后一个跟前面一个是否相同来分组,一个示例 复制代码 代码如下: $result = mysql_query("SELECT groups,name,goods FROM table GROUP BY groups,name ORDER BY name"); $arr = arr

  • jquery实现多条件筛选特效代码分享

    本文实例讲述了jquery实现多条件筛选特效.分享给大家供大家参考.具体如下: jquery实现的多条件搜索表单带日期选择表格表单效果源码,是一段实现了多个条件筛选搜索的特效代码,多条件拥有时间.地点.酒店位置及酒店名称等选项,同时在时间的输入表格中拥有时间选择功能,是一款非常实用的特效代码,值得大家学习. 运行效果图:                        -------------------查看效果 下载源码------------------- 小提示:浏览器中如果不能正常运行,

  • jquery遍历数组与筛选数组的方法

    grepgrep()方法用于数组元素过滤筛选 grep(array,callback,invert)array:待过滤数组;callback:处理数组中的每个元素,并过滤元素,该函数中包含两个参数,第一个是当前数组元素的值,一个是当前数组元素的下标,即元素索引值.此函数应返回一个布尔值.另外,此函数可设置为一个字符串,当设置为字符串时,将视为"lambda-form"(缩写形式?),其中 a 代表数组元素,i 代表元素索引值.如"a > 0"代表"f

  • JQuery操作表格(隔行着色,高亮显示,筛选数据)

    查了些资料,写了4个Demo: 1. 隔行着色 复制代码 代码如下: $('#table1 tr:odd').addClass('odd'); $('#table1 tr:even').addClass('even'); 效果: 2. 高亮含有特定数据的行 复制代码 代码如下: $("#table2 tr:contains('Fuck')").addClass("selected"); 3. 筛选数据 复制代码 代码如下: $("#filter"

  • iOS仿Uber筛选栏效果

    这个是之前项目中用的仿Uber筛选栏,现在要改了,改之前把这个记录下来,万一有人用到了,就可以直接拿来用了,这个是在大神的基础上改的,还行吧,但是觉得有点丑!有需要的可以看一下,方法有点笨,大神勿喷. 1.加载数据 * 加载数据 */ - (void)loadData{ timeArray = @[@"6小时之内",@"12小时之内",@"24小时之内"]; locationArray = @[@"全城",@"附近1

  • jQuery帮助之筛选查找 children([expr])

    children([expr]) 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合. 可以通过可选的表达式来过滤所匹配的子元素.注意:parents()将查找所有祖辈元素,而children()之考虑子元素而不考虑所有后代元素. 返回值:jQuery 参数: expr (String) : (可选) 用以过滤子元素的表达式. 示例: 查找DIV中的每个子元素. HTML 代码: 复制代码 代码如下: <p>Hello</p><div><span>

  • JQuery筛选器全系列介绍

    1.选择对象 1).基本 ·#id 根据给定的ID匹配一个元素.例如:$("#id")·element 根据给定的元素名匹配所有元素.例如:$("div")·.class 根据给定的类匹配元素.例如:$(".style1");·* 匹配所有元素.例如:$("*")·selector1,selector2,selectorN 将每一个选择器匹配到的元素合并后一起返回.例如:$("#id,div,.style1"

  • jQuery筛选器children()案例详解(图文)

    jQuery的选择包含两种,一种是选择器,一种是筛选器.筛选器是对选择器选定的jQuery对象做进一步选择. children()是一个筛选器,顾名思义就是筛选孩子,筛选那些符合条件的孩子. 完整的格式如下: 复制代码 代码如下: .children(expr) 其中children是筛选器的名称,expr是表达式,所有选择器中的表达式都可以用在这,比如按标签名"div",按类名".class",按序号":first"等等,如果表达式为空,那么返

  • jquery遍历筛选数组的几种方法和遍历解析json对象

    jquery grep()筛选遍历数组 复制代码 代码如下: $().ready( function(){ var array = [1,2,3,4,5,6,7,8,9]; var filterarray = $.grep(array,function(value){ return value > 5;//筛选出大于5的 }); for(var i=0;i<filterarray.length;i++){ alert(filterarray[i]); } for (key in filtera

  • Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例

    复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="JquerySort.aspx.cs" Inherits="demo_JquerySort" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www

随机推荐