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 相关文章推荐
JavaScript入门之事件、cookie、定时等
Oct 21 Javascript
js 自动播放的实例代码
Nov 19 Javascript
JavaScript调试工具汇总
Dec 23 Javascript
jQuery+HTML5加入购物车代码分享
Oct 29 Javascript
基于javascript实现九宫格大转盘效果
May 28 Javascript
JavaScript探测CSS动画是否已经完成的方法
Aug 30 Javascript
禁用backspace网页回退功能的实现代码
Nov 15 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
Vue.js实现微信过渡动画左右切换效果
Jun 13 Javascript
ES7之Async/await的使用详解
Mar 28 Javascript
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
layui use 定义js外部引用函数的方法
Sep 26 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
第七节--类的静态成员
2006/11/16 PHP
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
js简单倒计时实现代码
2016/04/30 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
js中开关变量使用实例
2017/02/24 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
pycharm 使用心得(四)显示行号
2014/06/05 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
在校学生职业规划范文
2014/01/08 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers