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 使用手册(一)
Sep 23 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
Jan 10 Javascript
javascript关于运动的各种问题经典总结
Apr 27 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
Jun 03 Javascript
vue v-on监听事件详解
May 17 Javascript
Vue下拉框回显并默认选中随机问题
Sep 06 Javascript
jquery图片预览插件实现方法详解
Jul 18 jQuery
JS实现的进制转换,浮点数相加,数字判断操作示例
Nov 09 Javascript
JavaScript的垃圾回收机制与内存管理
Aug 06 Javascript
如何编写一个 Webpack Loader的实现
Oct 18 Javascript
jquery插件实现搜索历史
Apr 24 jQuery
手写实现JS中的new
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
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
Python日期的加减等操作的示例
2017/08/15 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
python的等深分箱实例
2019/11/22 Python
python多进程并发demo实例解析
2019/12/13 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
建材业务员岗位职责
2013/12/08 职场文书
益达广告词
2014/03/14 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
排查整治工作方案
2014/06/09 职场文书
七一讲话心得体会
2014/09/05 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python