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 相关文章推荐
一个很酷的拖动层的js类,兼容IE及Firefox
Jun 23 Javascript
浅谈javascript的调试
Jan 28 Javascript
jQuery实现打开页面渐现效果示例
Jul 27 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
Dec 30 Javascript
微信小程序 页面跳转传递值几种方法详解
Jan 12 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
Feb 13 Javascript
Bootstrap fileinput组件封装及使用详解
Mar 10 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
Sep 14 Javascript
基于vue 开发中出现警告问题去除方法
Jan 25 Javascript
js事件on动态绑定数据,绑定多个事件的方法
Sep 15 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
Jul 27 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
Aug 17 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之第三天
2006/10/09 PHP
浅析PHP水印技术
2007/02/14 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
2017/05/23 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
办理信用卡工作证明
2014/01/11 职场文书
迅雷Cued工作心得体会
2014/01/27 职场文书
预防传染病方案
2014/06/14 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript