zoukankan      html  css  js  c++  java
  • 商品筛选条件

    需求:1.当点击价格、类别、品牌的时候被点击的元素依次被创建(注意顺序)

       2.当点击创建元素的时候,内容依次还原

    HTML

    <ul>
    	<li>
    		<span>价格:</span>
    		<a href="javascript:;">300-699</a>
    		<a href="javascript:;">700-1099</a>
    		<a href="javascript:;">1100-1999</a>
    		<a href="javascript:;">2000-3599</a>
    		<a href="javascript:;">3600-4299</a>
    		<a href="javascript:;">4300以上</a>
    	</li>
    	<li>
    		<span>类别:</span>
    		<a href="javascript:;">文件夹</a>
    		<a href="javascript:;">办公套装</a>
    		<a href="javascript:;">文件筐</a>
    		<a href="javascript:;">美工刀</a>
    		<a href="javascript:;">三针一钉</a>
    		<a href="javascript:;">风琴包</a>
    		<a href="javascript:;">票夹</a>
    	</li>
    	<li>
    		<span>品牌:</span>
    		<a href="javascript:;">得力</a>
    		<a href="javascript:;">齐心</a>
    		<a href="javascript:;">优必力</a>
    		<a href="javascript:;">三木</a>
    		<a href="javascript:;">GBC</a>
    		<a href="javascript:;">广博</a>
    		<a href="javascript:;">利兰</a>
    	</li>
    </ul>
    <div id="txt"></div>
    

    CSS

    *{
    	margin: 0;
    	padding: 0;
    }
    li{
    	list-style: none;
    	border-bottom: 1px solid #C0C4CB;
    	 800px;
    	line-height: 50px;
    	text-indent: 20px;
    	height: 50px;
    }
    a{
    	text-decoration: none;
    }
    li a{
    	color: #005599;
    	padding: 0 10px;
    }
    li span{
    	padding-right: 80px;
    }
    #txt{
    	margin-top: 20px;
    	margin-left: 10px;
    }
    #txt a{
    	display: inline-block;
    	padding: 8px 10px;
    	border: 1px solid #C4C4C4;
    	margin-right: 20px;
    	color: #2C333A;
    	margin-bottom: 20px;
    	cursor: pointer;
    }
    #txt a i,#txt a em{
    	color: red;
    }
    #txt a em{
    	padding-left: 10px;
    	font-size: 12px;
    	font-weight: bold;
    }
    

    JS

    var lis=document.getElementsByTagName("li");
    var oTxT=document.getElementById("txt");
    var arr=[];
    var arr1=[];
    
    for (var i=0;i<lis.length;i++) {
    	lis[i].index=i;
    	var Btn=lis[i].getElementsByTagName("a");
    	for (var j=0;j<Btn.length;j++) {
    		Btn[j].index=j;
    		Btn[j].onclick=function(){
    			//创建元素a
    			var aAs=document.createElement("a");
    			//记录下标
    			aAs.index=String(this.parentNode.index)+String(this.index);
    			aAs.innerHTML=this.parentNode.children[0].innerHTML+"<i>"+this.innerHTML+"</i><em>X</em>";
    			
    			//分别生成两个数组,并对两个数组进行排序
    			//小标数组
    			arr.push(parseInt(aAs.index));
    			//生成的所有元素数组
    			arr1.push(aAs);
    			
    			//对数组进行排序
    			for (var i=0;i<arr.length;i++) {
    				for (var j=i+1;j<arr.length;j++) {
    					if(arr[i]>arr[j]){
    						var temp=arr[i];
    	                	arr[i]=arr[j];
    	                	arr[j]=temp;
    		            	var temp1=arr1[i];
    		            	arr1[i]=arr1[j];
    		            	arr1[j]=temp1;
    					}
    				}
    				//将排序后的数组元素添加到页面
    				oTxT.appendChild(arr1[i]);
    			}
    			//删除被选中的条件
    			this.style.display="none";
    			
    			//点击取消条件选择
    			var txtBtn=oTxT.getElementsByTagName("a");
    			
    			for (var i=0;i<txtBtn.length;i++) {
    				txtBtn[i].onclick=function(){
    					//条件列表中的该条件显示
    					lis[this.index[0]].children[parseInt(this.index[1])+1].style.display="inline";
    //					console.log(lis[this.index[0]].children[parseInt(this.index[1])+1]);
    					
    					//删除该筛选条件
    					this.parentNode.removeChild(this);
    					
    					//重置数组
    					arr=[];
    					arr1=[];
    					for (var i=0;i<oTxT.children.length;i++) {
    						arr.push(oTxT.children[i].index);
    						arr1.push(oTxT.children[i]);
    					}
    				}
    			}
    		}
    	}
    }
    

      

  • 相关阅读:
    C#实现任意源组播与特定源组播
    张灵甫此人性格偏激,赌性重,喜欢冒险,做事不留后路,更适合担任中下层军官(要自己掌控着自己的命运)
    Delphi 中 断言 Assert 用法
    桌面程序阻止Windows关机(使用Message.Result取得DefWindowProc API函数的返回值,非常重要)
    Asp.net vnext的IIS部署
    Asp.net vNext 学习3
    EasyUI的后台界面
    C#框架
    前端分离规范
    AngularJS html5Mode与ASP.NET MVC路由
  • 原文地址:https://www.cnblogs.com/yangxue72/p/8078905.html
Copyright © 2011-2022 走看看