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 相关文章推荐
语义化 H1 标签
Jan 14 Javascript
JQuery Tips相关(1)----关于$.Ready()
Aug 14 Javascript
JavaScript实现cookie的写入、读取、删除功能
Nov 05 Javascript
jQuery获取元素父节点的方法
Jun 21 Javascript
vue2.0开发实践总结之疑难篇
Dec 07 Javascript
分享一个精简的vue.js 图片lazyload插件实例
Mar 13 Javascript
php中and 和 &amp;&amp;出坑指南
Jul 13 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
Oct 23 Javascript
微信小程序wepy框架学习和使用心得详解
May 24 Javascript
Vue中util的工具函数实例详解
Jul 08 Javascript
浅谈vue限制文本框输入数字的正确姿势
Sep 02 Javascript
js实现直播点击飘心效果
Aug 19 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 fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
php制作动态随机验证码
2015/02/12 PHP
PHP安全下载文件的方法
2016/04/07 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
在新窗口打开超链接的方法小结
2013/04/14 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
微信小程序开发探究
2016/12/27 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
python中from module import * 的一个坑
2014/07/20 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
pywinauto自动化操作记事本
2019/08/26 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
2020/02/17 Python
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
生产副总岗位职责
2013/11/28 职场文书
校三好学生主要事迹
2014/01/11 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
初中成绩单评语
2014/12/29 职场文书
中秋客户感谢信
2015/01/22 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书