JavaScript结合HTML DOM实现联动菜单


Posted in Javascript onApril 05, 2017

本文实例为大家分享了js三级联动菜单展示的具体代码,供大家参考,具体内容如下

效果图:

JavaScript结合HTML DOM实现联动菜单

代码:

<!DOCTYPE HTML>
<html>
<head>
<title>联动菜单</title>
<meta charset="utf-8" />
<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":'手套'}
  ]}
];
   
</script>
</head>
<body>
  <div id="category"></div>
 <script>
  //查找id为category的div保存在div中
   var div=document.getElementById("category");
  //定义函数createSelect,接收一个数组参数arr
  function createSelect(arr){
   //创建一个select
   var sel=document.createElement("select");
   //创建一个option,设置其内容为"-请选择-",值为-1,将option添加到select中
    sel.add(new Option("--请选择--",-1));
   //遍历arr
   for(var i=0;i<arr.length;i++){
    //创建一个option,设置内容为当前元素的name属性,设置value为当前元素的id属性,将新option添加到select中
    sel.add(new Option(arr[i].name,arr[i].id));   
   }//(遍历结束)
   //为sel绑定onchange事件
   sel.onchange=function(){
    //反复:只要当前select不是div的lastChild
    while(this!=div.lastChild)
     //让div删除其lastChild
      div.removeChild(div.lastChild);
    //获得当前选中项的下表-1,保存在i中
    var i=this.selectedIndex-1;
    //如果arr中i位置的商品类别有children
     if(i>=0&&arr[i].children!==undefined)
     //用arr中i位置的商品类别的children数组创建下一个select
     createSelect(arr[i].children);
    
   }
   //将select添加到div中
    div.appendChild(sel);
  }
  createSelect(categories);
 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
获取dom元素那些讨厌的位置封装代码
Jun 23 Javascript
JavaScript组件焦点与页内锚点间传值的方法
Feb 02 Javascript
js拆分字符串并将分割的数据放到数组中的方法
May 06 Javascript
javascript中setAttribute()函数使用方法及兼容性
Jul 19 Javascript
Node.js的Express框架使用上手指南
Mar 12 Javascript
Google 地图事件实例讲解
Aug 06 Javascript
Javascript中return的使用与闭包详解
Jan 11 Javascript
vue实现点击图片放大效果
Aug 15 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
May 25 Javascript
用npm-run实现自动化任务的方法示例
Jan 14 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
jQuery实现广告显示和隐藏动画
Jul 04 jQuery
js实现按座位号抽奖
Apr 05 #Javascript
Angularjs 实现移动端在线测评效果(推荐)
Apr 05 #Javascript
微信小程序中的onLoad详解及简单实例
Apr 05 #Javascript
微信小程序 页面跳转如何实现传值
Apr 05 #Javascript
微信小程序 数据遍历的实现
Apr 05 #Javascript
微信小程序 图片绝对定位(背景图片)
Apr 05 #Javascript
JS实现复选框的全选和批量删除功能
Apr 05 #Javascript
You might like
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
jQuery 创建Dom元素
2010/05/07 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
shiro授权的实现原理
2017/09/21 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python的ORM框架SQLObject入门实例
2014/04/28 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
如何在python中执行另一个py文件
2020/04/30 Python
django中ImageField的使用详解
2020/12/21 Python
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
全球最大的游戏市场:G2A
2018/07/05 全球购物
公司综合部的成员自我评价分享
2013/11/05 职场文书
《搭石》教学反思
2014/04/07 职场文书
环保建议书作文400字
2015/09/14 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
品德与社会教学反思
2016/02/24 职场文书
python爬虫--selenium模块
2021/03/31 Python