原生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 实现Tab效果 思路是js思路
Mar 02 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
May 27 Javascript
jquery中 $.expr使用实例介绍
Jun 09 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
基于jQuery日历插件制作日历
Mar 11 Javascript
jQuery实现下拉加载功能实例代码
Apr 01 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
微信小程序 下拉菜单的实现
Apr 06 Javascript
微信小程序 request接口的封装实例代码
Apr 26 Javascript
H5上传本地图片并预览功能
May 08 Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 Javascript
angular 用Observable实现异步调用的方法
Dec 27 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
网上抓的一个特效
2007/05/11 Javascript
JavaScript delete操作符应用实例
2009/01/13 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
Angular实现响应式表单
2017/08/04 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
代办委托书怎么写
2014/08/01 职场文书
机关职员工作检讨书
2014/10/23 职场文书
教育实习指导教师评语
2014/12/31 职场文书
暖春观后感
2015/06/08 职场文书
小学教师教育随笔
2015/08/14 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
Nginx配置使用详解
2022/07/07 Servers