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 相关文章推荐
JQuery Tips(2) 关于$()包装集你不知道的
Dec 14 Javascript
使用jQuery jqPlot插件绘制柱状图
Dec 18 Javascript
js获取数组的最后一个元素
Apr 14 Javascript
分享网页检测摇一摇实例代码
Jan 14 Javascript
浅析JS异步加载进度条
May 05 Javascript
运用js教你轻松制作html音乐播放器
Apr 17 Javascript
第一次接触神奇的前端框架vue.js
Dec 01 Javascript
JS中parseInt()和map()用法分析
Dec 16 Javascript
javascript 中select框触发事件过程的分析
Aug 01 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
Sep 05 Javascript
vue实现虚拟列表功能的代码
Jul 28 Javascript
vue Cli 环境删除与重装教程 - 版本文档
Sep 11 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
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
js中function()使用方法
2013/12/24 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
python随机模块random使用方法详解
2020/02/14 Python
Python文件操作基础流程解析
2020/03/19 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
strstr()的简单实现
2013/09/26 面试题
会计专业毕业生推荐信
2013/11/05 职场文书
医药工作岗位求职信分享
2013/12/31 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
大学专科自荐信
2014/06/17 职场文书
负责培养人意见
2015/06/05 职场文书
JavaScript流程控制(循环)
2021/12/06 Javascript
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫