原生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 相关文章推荐
JavaScript 获取用户客户端操作系统版本
Aug 25 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
Jun 28 Javascript
一个JavaScript变量声明的知识点
Oct 28 Javascript
javascript获取url上某个参数的方法
Nov 08 Javascript
jquery ajax 局部刷新小案例
Feb 08 Javascript
JS实现一个列表中包含上移下移删除等功能
Sep 24 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 Javascript
JS控制表格实现一条光线流动分割行的方法
Mar 09 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 jQuery
Vue shopCart 组件开发详解
Jan 26 Javascript
JS div匀速移动动画与变速移动动画代码实例
Mar 26 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 jQuery
微信小程序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生成静态页
2006/11/25 PHP
linux下为php添加curl扩展的方法
2011/07/29 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
PHP生成压缩文件实例
2015/02/07 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
js中开关变量使用实例
2017/02/24 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
js实现微信聊天界面
2020/08/09 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
Numpy中的mask的使用
2018/07/21 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
上班迟到检讨书
2014/01/10 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
企业内控岗位的职责
2014/02/07 职场文书
食品安全工作实施方案
2014/03/26 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
导游词之山东孔庙
2019/11/04 职场文书
Python Flask实现进度条
2022/05/11 Python