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技术很烂的五个原因
Apr 26 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
Jul 31 Javascript
关于JavaScript的面向对象和继承有利新手学习
Jan 11 Javascript
基于jQuery.Validate验证库知识点的详解
Apr 26 Javascript
javascript常用的正则表达式实例
May 15 Javascript
js实现下拉列表选中某个值的方法(3种方法)
Dec 17 Javascript
JavaScript制作简单的日历效果
Mar 10 Javascript
利用jquery实现下拉框的禁用与启用
Dec 07 Javascript
Bootstrap风格的zTree右键菜单
Feb 17 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
May 28 Javascript
详解从vue-loader源码分析CSS Scoped的实现
Sep 23 Javascript
vue 解决computed修改data数据的问题
Nov 06 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数组应用之比较两个时间的相减排序
2008/08/18 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
js过滤数组重复元素的方法
2010/09/05 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
node使用request请求的方法
2019/12/20 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
Python 模板引擎的注入问题分析
2017/01/01 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
建筑班组长岗位职责
2014/01/02 职场文书
农民工工资发放承诺书
2014/03/31 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
难忘的一天教学反思
2014/04/30 职场文书
课外科技活动总结
2014/08/27 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
SQL 聚合、分组和排序
2021/11/11 MySQL
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js