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 相关文章推荐
自适应图片大小的弹出窗口
Jul 27 Javascript
JavaScript静态的动态
Sep 18 Javascript
jquery获取div宽度的实现思路与代码
Jan 13 Javascript
JS关键字变色实现思路及代码
Feb 21 Javascript
Javascript中的几种URL编码方法比较
Jan 23 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
Jul 17 Javascript
浅谈Javascript数组的使用
Jul 29 Javascript
jquery实现简单的遮罩层
Jan 08 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
Sep 01 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
vue中el-upload上传图片到七牛的示例代码
Oct 19 Javascript
JS严格模式原理与用法实例分析
Apr 27 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中date()日期函数有关参数整理
2011/07/19 PHP
PHP 文件系统详解
2012/09/13 PHP
基于simple_html_dom的使用小结
2013/07/01 PHP
一段实用的php验证码函数
2016/05/19 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&amp;Firefox] 有文档和例子
2007/05/30 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
使用JavaScript破解web
2018/09/28 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Python能做什么
2020/06/02 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
Pandas的数据过滤实现
2021/01/15 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
手工制作的意大利太阳镜和光学元件:Illesteva
2019/01/19 全球购物
《姥姥的剪纸》教学反思
2014/02/25 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
赢在执行观后感
2015/06/16 职场文书
工伤调解协议书
2016/03/21 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript