原生JS实现多条件筛选


Posted in Javascript onAugust 19, 2020

本文实例为大家分享了原生JS实现多条件筛选的具体代码,供大家参考,具体内容如下

我在学JS初始看到的教程基本都是JS二级联动查询、三级联动查询;如下图:

原生JS实现多条件筛选

但有时并不需要级联查询,如购买商品时:

原生JS实现多条件筛选

今天我以慕课网前端样式作为参考做了下面的Demo,基于原生JS

<div id="direction">
 <strong>方向:</strong>
 <span class="active">全部</span>
 <span>前端</span>
 <span>后台</span>
 <span>数据库</span>
 <span>UI设计</span>
</div>
<div id="category">
 <strong>分类:</strong>
 <span class="active">全部</span>
 <span>HTML/CSS</span>
 <span>JavaScript</span>
 <span>jQuery</span>
 <span>Python</span>
 <span>Java</span>
 <span>AngularJS</span>
</div>
<div id="type">
 <strong>类型:</strong>
 <span class="active">全部</span>
 <span>基础</span>
 <span>案例</span>
 <span>框架</span>
 <span>工具</span>
</div>
<strong>返回值:</strong>
<p id="Res"></p>
<style>
 span{display: inline-block;
  cursor: pointer; padding: 8px; border: 1px solid #999;}
 span.active{
  background-color: #c14d00;
 }
</style>
<script>
 var dSpan = document.getElementById('direction').getElementsByTagName('span');
 var cSpan = document.getElementById('category').getElementsByTagName('span');
 var tSpan = document.getElementById('type').getElementsByTagName('span');
 var aSpan = document.getElementsByTagName('span');
 var oDirection = document.getElementById('direction');
 var oCategory = document.getElementById('category');
 var oType = document.getElementById('type');
 var oRes = document.getElementById('Res');
 dSpan[0].className = 'active';
 cSpan[0].className = 'active';
 tSpan[0].className = 'active';
 for(var i=0; i<aSpan.length; i++){
  aSpan[i].onclick = function(){
   var siblings = this.parentNode.children;
   for(var j=0; j<siblings.length; j++){
    siblings[j].className = '';
   }
   this.className = 'active';
   if(this.parentNode == oDirection || this.parentNode == oCategory || this.parentNode == oType){
    returnRes();
   }
  }
 }

 function returnRes(){
  var o1 = 0, o2 = 0, o3 = 0;
  for(var i=0; i<dSpan.length; i++){
   if(dSpan[i].className == 'active'){
    o1 = i;
   }
  }
  for(var i=0; i<cSpan.length; i++){
   if(cSpan[i].className == 'active'){
    o2 = i;
   }
  }
  for(var i=0; i<tSpan.length; i++){
   if(tSpan[i].className == 'active'){
    o3 = i;
   }
  }
  oRes.innerHTML = (dSpan[o1].innerHTML + "," + cSpan[o2].innerHTML + "," + tSpan[o3].innerHTML);
 }
</script>

最后附上效果图:

原生JS实现多条件筛选

注:本篇博文是 【无条件】的分类筛选

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于JQuery制作的产品广告效果
Dec 08 Javascript
JavaScript与DOM组合动态创建表格实例
Dec 23 Javascript
文本框文本自动补全效果示例分享
Jan 19 Javascript
Jquery如何实现点击时高亮显示代码
Jan 22 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
Mar 11 Javascript
jQuery实现加入购物车飞入动画效果
Mar 14 Javascript
js+css实现select的美化效果
Mar 24 Javascript
jquery+ajax实现直接提交表单实例分析
Jun 17 Javascript
基于jQuery实现数字滚动效果
Jan 16 Javascript
html5+canvas实现支持触屏的签名插件教程
May 08 Javascript
javascrit中undefined和null的区别详解
Apr 07 Javascript
详解小程序云开发数据库
May 20 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
Aug 19 #Javascript
微信小程序通过websocket实时语音识别的实现代码
Aug 19 #Javascript
JS实现炫酷雪花飘落效果
Aug 19 #Javascript
javascript实现雪花飘落效果
Aug 19 #Javascript
js实现直播点击飘心效果
Aug 19 #Javascript
js实现鼠标点击飘爱心效果
Aug 19 #Javascript
Vue环境搭建+VSCode+Win10的详细教程
Aug 19 #Javascript
You might like
常用的php ADODB使用方法集锦
2008/03/25 PHP
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
基于php 随机数的深入理解
2013/06/05 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
python math模块的基本使用教程
2021/01/16 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
党员活动日总结
2014/05/05 职场文书
2014年行政部工作总结
2014/11/19 职场文书
2015年招生工作总结
2015/05/04 职场文书
解除处分决定书
2015/06/25 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
Django实现drf搜索过滤和排序过滤
2021/06/21 Python