原生JS實現(xiàn)多條件篩選
更新時間:2020年08月19日 11:42:08 作者:abloume
這篇文章主要為大家詳細介紹了原生JS實現(xiàn)多條件篩選,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了原生JS實現(xiàn)多條件篩選的具體代碼,供大家參考,具體內(nèi)容如下
我在學JS初始看到的教程基本都是JS二級聯(lián)動查詢、三級聯(lián)動查詢;如下圖:
但有時并不需要級聯(lián)查詢,如購買商品時:
今天我以慕課網(wǎng)前端樣式作為參考做了下面的Demo,基于原生JS
<div id="direction"> <strong>方向:</strong> <span class="active">全部</span> <span>前端</span> <span>后臺</span> <span>數(shù)據(jù)庫</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>
最后附上效果圖:
注:本篇博文是 【無條件】的分類篩選
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JavaScript用20行代碼實現(xiàn)虎年春節(jié)倒計時
春節(jié)將至,相信大家跟小編一樣很激動呀。為了迎接虎年春節(jié)到來,小編為大家準備了一個虎年春節(jié)倒計時,僅20行代碼用js就實現(xiàn)啦。感興趣的可以動手試一試2022-01-01淺談JavaScript 數(shù)據(jù)屬性和訪問器屬性
下面小編就為大家?guī)硪黄獪\談JavaScript 數(shù)據(jù)屬性和訪問器屬性。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09使用getBoundingClientRect方法實現(xiàn)簡潔的sticky組件的方法
本文介紹這種組件的實現(xiàn)思路,并提供一個同時支持將sticky元素固定在頂部或底部的具體實現(xiàn),由于這種組件在網(wǎng)站中非常常見,所以有必要掌握它的實現(xiàn)方式,以便在有需要的時候基于它的思路寫出功能更多的組件出來2016-03-03