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 相关文章推荐
提高代码性能技巧谈—以创建千行表格为例
Jul 01 Javascript
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
JSuggest自动匹配下拉框使用方法(示例代码)
Dec 27 Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 Javascript
浅谈JavaScript for循环 闭包
Jun 22 Javascript
echart简介_动力节点Java学院整理
Aug 11 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
Webpack path与publicPath的区别详解
May 03 Javascript
JavaScript作用域链实例详解
Jan 21 Javascript
jQuery+ajax实现批量删除功能完整示例
Jun 06 jQuery
原生JavaScript实现日历功能代码实例(无引用Jq)
Sep 23 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
Nov 07 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
PHP中读取照片exif信息的方法
2014/08/20 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
Postman参数化实现过程及原理解析
2020/08/13 Javascript
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
python 实现绘制整齐的表格
2019/11/18 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
手机业务员岗位职责
2013/12/13 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
2015年派出所工作总结
2015/04/24 职场文书
未婚证明范本
2015/06/15 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
《揠苗助长》教学反思
2016/02/20 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android