本文实例为大家分享了js商品筛选功能的具体代码,供大家参考,具体内容如下
十年的贞丰网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整贞丰建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“贞丰网站设计”,“贞丰网站推广”以来,每个客户项目都认真落实执行。用到的知识:js基础、dom、第一种方法用到的是js中的数组方法,第二种方法用到的是json和for-in以及es6
实现步骤
1、根据数据结构生成HTML结构(利用dom操作)
2、获取每一个li,给每一个li中每一个a标签绑定事件处理函数
3、点击a标签,把a标签的内容添加在对象中,同时添加样式
4、根据对象存的属性生成选择则条件的HTML结构(按顺序排列)
5、点击关闭选择的条件,删除数据,移除HTML结构,去除在其对应的li中的样式
第一种方法
<script> window.onload = function(){ var oType = document.getElementById('type'); var oChoose = document.getElementById('choose'); var oChosDiv = oChoose.getElementsByTagName('div')[0]; var crumbData = [ { "title": "品牌", "data": [ "苹果","小米","锤子","魅族","华为","三星","OPPO","vivo","乐视"] }, { "title": "尺寸", "data": ["4.0-4.5英寸","4.6-4.9英寸","5.0-5.5英寸","6.0英寸以上"] }, { "title": "系统", "data": ["android","ios","window phone","无","其他"] }, { "title": "网络", "data": ["联通3G","双卡单4G","双卡双4G","联通4G"] } ] //利用dom动态添加元素 for(var i=0; i<crumbData.length; i++){ var aLi = document.createElement('li'); var aSpan = document.createElement('span'); aSpan.innerHTML = crumbData[i].title; aLi.appendChild(aSpan); for(var j = 0; j<crumbData[i].data.length; j++){ var aA = document.createElement('a'); aA.innerHTML = crumbData[i].data[j]; aLi.appendChild(aA); } oType.appendChild(aLi); } var aLi = oType.getElementsByTagName('li'); var arr = [];//用来存放筛选条件 for(var i = 0; i<aLi.length; i++){ arr.push(0); }//先将数组中存放aLi.length个0,方便接下来按li的顺序存放数据 for(var i=0; i<aLi.length; i++){ aLi[i].prevNode = null;//记录点击的a标签 aLi[i].index = i;//记录每一个li的下标 var aA = aLi[i].getElementsByTagName('a'); for(var j=0; j<aA.length; j++){ aA[j].onclick = function(){ var parent = this.parentNode;//点击的a标签的父级li //既要生成选择的结构,还要对选择的结构进行排序 //点击同一行筛选条件,只能有一个 if(parent.prevNode){ parent.prevNode.style.color = ''; } this.style.color = 'red'; arr[parent.index] = this.innerText; oChosDiv.innerHTML = ''; for(var i=0; i<arr.length; i++){ if(arr[i]){ //只有当arr[i]的值不为0时,也即与下标对应的第i个li中有被选中的时候才执行下面的代码 var oChomark = document.createElement('mark'); oChomark.innerHTML = arr[i]; var oCxa = document.createElement('a'); oCxa.innerHTML = 'X'; oCxa.setAttribute('name',i);//标记商品筛选区的a所在的li是第几个 oChomark.appendChild(oCxa); oChosDiv.appendChild(oChomark);} } var num = 0; var ChoseA = oChosDiv.getElementsByTagName('a'); for(var i = 0; i<ChoseA.length; i++){ ChoseA[i].index = i; ChoseA[i].onclick = function(){ num = parseInt(this.getAttribute('name'));//得到删除a标签在第几个li中(记得将字符串格式转化为数字格式) this.parentNode.remove(); aLi[num].prevNode.style.color = ''; arr[num]=0;//让删除的元素在数组中对应下标的值变为0 } } parent.prevNode = this; } } } } </script>
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页题目:原生js实现商品筛选功能-创新互联
链接分享:https://www.cdcxhl.com/article10/dsgodo.html
成都网站建设公司_创新互联,为您提供Google、静态网站、品牌网站制作、响应式网站、网站改版、建站公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联