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 相关文章推荐
JavaScript回调(callback)函数概念自我理解及示例
Jul 04 Javascript
在js文件中如何获取basePath处理js路径问题
Jul 10 Javascript
Js 获取当前函数参数对象的实现代码
Jun 20 Javascript
jQuery操作json常用方法示例
Jan 04 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
Sep 30 Javascript
bootstrap Table服务端处理分页(后台是.net)
Oct 19 Javascript
在 Angular中 使用 Lodash 的方法
Feb 11 Javascript
VUE2.0中Jsonp的使用方法
May 22 Javascript
react 父子组件之间通讯props
Sep 08 Javascript
关于layui时间回显问题的解决方法
Sep 24 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
May 28 Javascript
基于JS实现操作成功之后自动跳转页面
Sep 25 Javascript
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数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
php模板引擎技术简单实现
2016/03/15 PHP
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
Python中的tuple元组详细介绍
2015/02/02 Python
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
如何使用python爬取csdn博客访问量
2016/02/14 Python
使用Python对MySQL数据操作
2017/04/06 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
应届生保险求职信
2013/11/11 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
国际会计专业求职信
2014/08/04 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
经营场所证明范本
2015/06/19 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
element多个表单校验的实现
2021/05/27 Javascript
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL