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 写类方式之三
Jul 05 Javascript
JQuery EasyUI 对话框的使用方法
Oct 24 Javascript
JS代码放在head和body中的区别分析
Dec 01 Javascript
jQuery简单实现banner图片切换
Jan 02 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
Apr 04 Javascript
JavaScript 获取任一float型小数点后两位的小数
Jun 30 Javascript
javascript实现简单的页面右下角提示信息框
Jul 31 Javascript
每天一篇javascript学习小结(Boolean对象)
Nov 12 Javascript
vue初始化动画加载的实例
Sep 01 Javascript
如何优雅地在vue中添加权限控制示例详解
Mar 07 Javascript
精读《Vue3.0 Function API》
May 20 Javascript
利用uni-app生成微信小程序的踩坑记录
Apr 05 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统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
php广告加载类用法实例
2014/09/23 PHP
PHP生成唯一订单号
2015/07/05 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
JS 日期比较大小的简单实例
2014/01/13 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
Python with的用法
2014/08/22 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
双语教学实施方案
2014/03/23 职场文书
三年级小学生评语
2014/04/22 职场文书
诚信考试标语
2014/06/24 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
离婚协议书样本
2015/01/26 职场文书
邀请函的格式
2015/01/30 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
gojs实现蚂蚁线动画效果
2022/02/18 Javascript
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL