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学习基础知识小结
Nov 25 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 Javascript
javascript的document.referrer浏览器支持、失效情况总结
Jul 18 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
JS实现获取剪贴板内容的方法
Jun 21 Javascript
angular2中Http请求原理与用法详解
Jan 11 Javascript
Vue父组件调用子组件事件方法
Feb 23 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
Jul 31 Javascript
React 父子组件通信的实现方法
Dec 05 Javascript
vue-cli3使用mock数据的方法分析
Mar 16 Javascript
JS setTimeout与setInterval的区别
Apr 20 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
php随机显示图片的简单示例
2014/02/15 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
JS面向对象编程浅析
2011/08/28 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
小程序云开发实战小结
2018/10/25 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
Python生成密码库功能示例
2017/05/23 Python
python pandas库的安装和创建
2019/01/10 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
python+requests接口自动化框架的实现
2020/08/31 Python
python 实现图片批量压缩的示例
2020/12/18 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
安全第一课观后感
2015/06/18 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
MySQL数据库简介与基本操作
2022/05/30 MySQL