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 相关文章推荐
EasyUI中的tree用法介绍
Nov 01 Javascript
javascript中节点的最近的相关节点访问方法
Mar 20 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
基于JavaScript实现生成名片、链接等二维码
Sep 20 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
May 10 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
Dec 18 Javascript
使用 Node.js 对文本内容分词和关键词抽取
May 27 Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 Javascript
koa-router路由参数和前端路由的结合详解
May 19 Javascript
Django+Vue实现WebSocket连接的示例代码
May 28 Javascript
vue+Element实现搜索关键字高亮功能
May 28 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
PHP实现类似题库抽题效果
2018/08/16 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
python提取内容关键词的方法
2015/03/16 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
python飞机大战游戏实例讲解
2020/12/04 Python
会计与审计毕业生自荐信范文
2013/12/30 职场文书
出国考察邀请函
2014/01/21 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
公司处罚决定书
2015/06/24 职场文书
导游词之江西赣州
2019/10/15 职场文书
如何理解及使用Python闭包
2021/06/01 Python
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL