JavaScript实现三级联动菜单效果


Posted in Javascript onAugust 16, 2017

三级联动考察的应该是对于数据的处理,只要清楚其中的关系,再多几级都是一样的:

html部分:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />
 <title>3级联动菜单</title>
 <script>
 var region = {
  广东:
  {
  "广州":["广州1","广州2","广州3"],

  "珠海":["珠海1","珠海2","珠海3"],

  "佛山":["佛山1"]
  },
  湖南:
  {
  "常德":["石门","桃源","临澧","汉寿"],

  "益阳":["益阳1","益阳2","益阳3"]
  }
 }
 </script>
</head>
 <body>

 <select id="province" onchange="change(this.value);">
  <option>请选择省份</option>
 </select>

 <select id="city" onchange="countyChange(this.value);">
  <option>请选择地市</option>
 </select>

 <select id="county">
  <option>请选择县城</option>
 </select>
 <script src='test.js'></script>
 </body>
</html>

js部分:

var province = document.querySelector("#province");
 var city = document.querySelector("#city");
 var county = document.querySelector("#county");
 //二级联动不用定义你选的省份,直接用省份(key)来决定下面的市(value)值
 var provinceName = null;

 for (ele in region){
 var op = new Option(ele , ele , false , false); //new Option("文本","值",true,true).后面两个true分别表示默认被选中和有效
 //console.log(op);
 province.options[province.length] = op;
 }

 var change = function(src){
 city.innerHTML = "";
 if(src === '请选择省份'){
  var op = new Option('请选择地市' , '请选择地市' , false , false);
  city.options[0] = op;
 }else{
  for (index in region[src]){
  //console.log(index);
  var op = new Option(index , index , false , false);
  city.options[city.length] = op;
  }
 }
 //记住选择省份的值
 provinceName=src;
 countyChange(city.value)
 }

 var countyChange = function(src2){
 county.innerHTML = "";
 if(src2 === '请选择地市'){
  var op = new Option('请选择县城','请选择县城', false , false);
  county.options[0] = op;
 }else{
  for (index in region[provinceName][src2]){
  //console.log(index);
  var op = new Option(region[provinceName][src2][index] , region[provinceName][src2][index] , false , false);
  county.options[county.length] = op;
  }
 }
 }

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

Javascript 相关文章推荐
js调用activeX获取u盘序列号的代码
Nov 21 Javascript
javascript 手动给表增加数据的小例子
Jul 10 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
Apr 08 Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
Jul 27 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
Sep 29 Javascript
基于JavaScript实现熔岩灯效果导航菜单
Jan 04 Javascript
基于vue.js路由参数的实例讲解——简单易懂
Sep 07 Javascript
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
在vue中给列表中的奇数行添加class的实现方法
Sep 05 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
vue点击标签切换选中及互相排斥操作
Jul 17 Javascript
ionic3 懒加载
Aug 16 #Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
Aug 16 #Javascript
理解 Node.js 事件驱动机制的原理
Aug 16 #Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
Aug 16 #Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
Aug 16 #Javascript
vue实现留言板todolist功能
Aug 16 #Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
Aug 16 #Javascript
You might like
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
2013/08/16 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
2016/12/09 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
用js实现放大镜效果
2020/10/28 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
浅谈python日志的配置文件路径问题
2018/04/28 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
园林技术个人的自我评价
2014/02/15 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
品牌服务方案
2014/06/03 职场文书
大雁塔英文导游词
2015/02/10 职场文书
入伍通知书
2015/04/23 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
MySQL七种JOIN类型小结
2021/10/24 MySQL