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实现锚点(Anchor)间平滑跳转
Sep 08 Javascript
JS 参数传递的实际应用代码分析
Sep 13 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
Nov 14 Javascript
JSONP之我见
Mar 24 Javascript
jQuery中的ajax async同步和异步详解
Sep 29 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
改变checkbox默认选中状态及取值的实现代码
May 26 Javascript
js css+html实现简单的日历
Jul 14 Javascript
javascript 四十条常用技巧大全
Sep 09 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
Dec 20 Javascript
postman+json+springmvc测试批量添加实例
Mar 31 Javascript
vue+iview使用树形控件的具体使用
Nov 02 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 过滤页面中的BOM(实现代码)
2013/06/29 PHP
php使用PDO方法详解
2014/12/27 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
非常好的js代码
2006/06/27 Javascript
java script编程起步(第三课)
2007/01/10 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
阿波罗盒子:Apollo Box
2017/08/14 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
中医药大学毕业生自荐信
2013/11/08 职场文书
财务工作个人求职的自我评价
2013/12/19 职场文书
应届生简历中的自我评价
2014/01/13 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
杨善洲电影观后感
2015/06/04 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
Python进程间的通信之语法学习
2022/04/11 Python
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL