js中DOM三级列表(代码分享)


Posted in Javascript onMarch 20, 2017

效果图:

js中DOM三级列表(代码分享)

代码如下:

<!DOCTYPE HTML>
<html>
<head>
<title>联动菜单</title>
<meta charset="utf-8" />
</head>
<body>
 <div id="category"></div>
 <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(arr){
 var select=//创建select
 document.createElement("select");
 //将opt追加到select中
 select.add(new Option("-请选择-",-1));
 //遍历arr中每个商品类别对象
 for(var i=0;i<arr.length;i++){
 //将option追加到select中
 select.add(
 new Option(arr[i].name,arr[i].id)
 );
 }
 var fun=arguments.callee;
 //为select绑定onchange事件:
 select.onchange=function(){
 //this->.前的元素对象
 //获得this的parent,保存在变量parent中
 var parent=this.parentNode;
 //反复:只要this不是parent的最后一个子节点
 while(this!=parent.lastChild){
 //删除parent下的最后一个子节点
 parent.removeChild(parent.lastChild);
 }
 //获得当前select选中项的下标i
 var i=this.selectedIndex;
 if(i>0){//如果i>0
 //获得arr中i-1位置的商品类别对象的children,保存在变量subCate
 var subCate=arr[i-1].children;
 //调用fun(subCate)
 subCate!==undefined&&fun(subCate);
 }
 }
 //将select追加到id为category的父元素下
 document.getElementById("category")
 .appendChild(select);
 })(categories);
 </script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
简洁短小的 JavaScript IE 浏览器判定代码
Mar 21 Javascript
jQuery版Tab标签切换
Mar 16 Javascript
调用jQuery滑出效果时闪烁的解决方法
Mar 27 Javascript
jQuery中parents()方法用法实例
Jan 07 Javascript
javascript实现很浪漫的气泡冒出特效
Sep 05 Javascript
javascript观察者模式实现自动刷新效果
Sep 05 Javascript
JS实现方形抽奖效果
Aug 27 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
Aug 31 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
vue获取data数据改变前后的值方法
Nov 07 Javascript
基于VSCode调试网页JavaScript代码过程详解
Jul 20 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
Aug 24 Javascript
深入对Vue.js $watch方法的理解
Mar 20 #Javascript
jQuery is not defined 错误原因与解决方法小结
Mar 19 #Javascript
js获取当前周、上一周、下一周日期
Mar 19 #Javascript
浅析bootstrap原理及优缺点
Mar 19 #Javascript
jQuery中用on绑定事件时需注意的事项
Mar 19 #Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
Mar 19 #Javascript
JavaScript数据结构之链表的实现
Mar 19 #Javascript
You might like
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
php日历[测试通过]
2008/03/27 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
Mootools 1.2教程 类(一)
2009/09/15 Javascript
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
Python中变量交换的例子
2014/08/25 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
详解python基础之while循环及if判断
2017/08/24 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
基于python 凸包问题的解决
2020/04/16 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Python 代码调试技巧示例代码
2020/08/11 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
应届大学生求职的自我评价
2013/11/17 职场文书
团组织关系介绍信
2014/01/12 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
上班迟到检讨书
2015/05/06 职场文书
项目投资意向书范本
2015/05/09 职场文书
好人好事新闻稿
2015/07/17 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书