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 实现的自定义对话框
Mar 24 Javascript
firefox浏览器下javascript 拖动层效果与原理分析代码
Dec 04 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
May 17 Javascript
jQuery中not()方法用法实例
Jan 06 Javascript
JQuery限制复选框checkbox可选中个数的方法
Apr 20 Javascript
JavaScript中字面量与函数的基本使用知识
Oct 20 Javascript
jQuery实现的导航下拉菜单效果
Jul 04 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
Jul 18 Javascript
axios异步提交表单数据的几种方法
Aug 11 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
Sep 23 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
Apr 27 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
Oct 21 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的session过期设置
2013/06/29 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python 异常处理实例详解
2014/03/12 Python
Python抓取京东图书评论数据
2014/08/31 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
用Eclipse写python程序
2018/02/10 Python
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
django框架两个使用模板实例
2019/12/11 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
小班上学期评语
2014/05/05 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS