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 相关文章推荐
Extjs优化(二)Form表单提交通用实现
Apr 15 Javascript
JS获得URL超链接的参数值实例代码
Jun 21 Javascript
jQuery的cookie插件实现保存用户登陆信息
Apr 15 Javascript
jquery移动点击的项目到列表最顶端的方法
Jun 24 Javascript
uploadify多文件上传参数设置技巧
Nov 16 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
Dec 25 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
Jun 22 Javascript
JS原生数据双向绑定实现代码
Aug 14 Javascript
微信小程序如何获取用户收货地址
Nov 27 Javascript
vue 开发之路由配置方法详解
Dec 02 Javascript
angular中的post请求处理示例详解
Jun 30 Javascript
在vue中嵌入外部网站的实现
Nov 13 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
mysql 字段类型说明
2007/04/27 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
摘自启点的main.js
2008/04/20 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
2014/02/19 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
python 装饰器的使用示例
2020/10/10 Python
应届毕业生个人求职自荐信
2014/01/06 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android