联动菜单

<span style="font-size:18px;"><!DOCTYPE HTML>
<html>
<head>
<title>联动菜单</title>
<meta charset="utf-8" />
<script>
	/*使用 HTML DOM 的方式实现联动菜单*/
	var categories=[
{"id":10,"name":'男装',"children":[
	{"id":101,"name":'正装'},
	{"id":102,"name":'T恤'},
	{"id":103,"name":'裤衩'}
]},
{"id":20,"name":'女装',"children":[
	{"id":201,"name":'短裙'},
	{"id":202,"name":'连衣裙'},
	{"id":203,"name":'裤子',"children":[
		{"id":2031,"name":'长裤'},
		{"id":2031,"name":'九分裤'},
		{"id":2031,"name":'七分裤'}
	]},
]},
{"id":30,"name":'童装',"children":[
	{"id":301,"name":'帽子'},
	{"id":302,"name":'套装',"children":[
		{"id":3021,"name":"0-3岁"},
		{"id":3021,"name":"3-6岁"},
		{"id":3021,"name":"6-9岁"},
		{"id":3021,"name":"9-12岁"}
	]},
	{"id":303,"name":'手套'}
]}
];
	function createSelect(arr){
		//创建select元素
		var select=document.createElement("select");
		//新建option元素,设置内容为-请选择-,值为-1,直接追加到select中
		select.add(new Option("-请选择-",-1));
		//遍历arr中每个商品类别对象
		for(var i=0;i<arr.length;i++){
			//新建option元素,设置内容为当前商品类型的name属性,值为id属性,直接追加到select中
			select.add(new Option(arr[i].name,arr[i].id));
		}//(遍历结束)
		//绑定onchange事件处理函数
		select.οnchange=function(){
			//删除当前select之后的所有select元素
			//当父元素的最后一个子元素就是当前select时,就停止删除
			while(this.parentNode.lastElementChild!=this){
				//移除父元素下最后一个子元素
				this.parentNode.removeChild(
					this.parentNode.lastElementChild
				);
			}
			//获取选中项的下标,保存在变量index中
			var index=this.selectedIndex;
			if(index>0){//如果index>0
				//获取arr中index-1位置的商品类型对象保存在cate中
				var cate=arr[index-1];
				//如果cate的children有效,说明当前类别有下级类别
				if(cate.children){
					//就调用createSelect方法,创建右侧select元素,传入cate的children数组作为参数
					createSelect(cate.children);
				}
			}
		}

		//将select元素追加到id为category的div下
		category.appendChild(select);
	}
	window.οnlοad=function(){
		createSelect(categories);
	}
</script>
</head>
<body>
	<div id="category"></div>
</body>
</html>
</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值