原生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 相关文章推荐
Js之软键盘实现(js源码)
Jan 30 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
Jul 31 Javascript
修改jQuery Validation里默认的验证方法
Feb 14 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
Dec 11 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
Feb 20 Javascript
jQuery实现frame之间互通的方法
Jun 26 jQuery
实例详解JavaScript中setTimeout函数的执行顺序
Jul 12 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
Aug 22 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
Aug 11 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
解决vue一个页面中复用同一个echarts组件的问题
Jul 19 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语法(3)
2006/10/09 PHP
WHOIS类的修改版
2006/10/09 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
JavaScript的Function详细
2006/11/14 Javascript
Javascript中Eval函数的使用说明
2008/10/11 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
实例解析Array和String方法
2016/12/14 Javascript
Javascript的this用法
2017/01/16 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
Python中操作MySQL入门实例
2015/02/08 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
Django权限机制实现代码详解
2018/02/05 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Pandas的Apply函数具体使用
2020/07/21 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
工商管理专业应届生求职信
2013/11/04 职场文书
手机业务员岗位职责
2013/12/13 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
中考学习决心书
2015/02/04 职场文书
2016猴年春节慰问信
2015/11/30 职场文书