JavaScript实现省市县三级级联特效


Posted in Javascript onMay 16, 2017

本文实例为大家分享了js省市县三级级联特效的实现代码,供大家参考,具体内容如下

主要思想

1.省改变,市改变,并初始化县
2.市改变,县改变

html代码

<select id="sheng">
 <option value="">--请选择--</option>
 <option value="0">北京市</option>
 <option value="1">河北省</option>
 <option value="2">山西省</option>
 <option value="3">内蒙古自治区</option>
</select>
<select id="shi">
 <option value="">--请选择--</option>
</select>
<select id="xian">
 <option value="">--请选择--</option>
</select>

主要步骤

1.获取元素对象

var sheng = document.getElementById('sheng');
var shi = document.getElementById('shi');
var xian = document.getElementById('xian');

2.定义市和县的数组

var city = [
   ['昌平区', '海淀区', '朝阳区', '东城区'],
   ['石家庄市', '保定市', '张家口市', '唐山市'],
   ['太原市', '大同市', '运城市', '临汾市'],
  ['呼和浩特市', '包头市', '鄂尔多斯市', '赤峰市']
 ];
  var xians = [
  [
    ['北七家','回龙观','霍营'],
    ['中关村','苏州街','西二旗'],
    ['朝阳1','朝阳2','朝阳3'],
    ['东城1','东城2','东城3'],
  ],
  [
   ['新华区','桥东区','桥西区'],
   ['高碑店','白沟','定兴'],
  ]
 ];

3.定义全局变量

var index = null;

4.实现省份改变,市跟着变化的效果

sheng.onchange = function() {
   xian.innerHTML = '<option value="">--请选择--</option>';// 初始化xian
   index = this.value; // 获取option的值
   var result = city[index];//根据index去city数组中获取对应的shi
   // 将获取的结果显示在select#shi中,循环result数组中的"每一个值",在值的两侧加上option标签
   var str = '<option value="">--请选择--</option>';
   for (var i = 0; i < result.length; i++) {
   // 将所有的拼接好的市再次拼接为一个整体
   str += '<option value="'+i+'">' + result[i] + '</option>';
   }
   shi.innerHTML = str;//将字符串写入到select#shi中
 }

5.实现市改变,获取县城的效果

shi.onchange = function(){
 var value = this.value; // 获取当前的value值  
 var county = xians[index][value]; // 根据市获取市对应的县
 var str = '<option value="">--请选择--</option>';
 for (var i = 0; i < county.length; i++) {
  str += '<option value="'+i+'">' + county[i] + '</option>';
 }
 xian.innerHTML = str;//将数据写入到select#xian中
}

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

Javascript 相关文章推荐
js loading加载效果实现代码
Nov 24 Javascript
xss文件页面内容读取(解决)
Nov 28 Javascript
jquery 操作DOM的基本用法分享
Apr 05 Javascript
AngularJs实现分页功能不带省略号的代码
May 30 Javascript
jQuery hover事件简单实现同时绑定2个方法
Jun 07 Javascript
Highcharts入门之基本属性
Aug 02 Javascript
微信小程序 picker-view 组件详解及简单实例
Jan 10 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
Aug 23 Javascript
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
vue使用axios实现excel文件下载的功能
Jul 16 Javascript
JavaScript实现网页下拉菜单效果
Nov 20 Javascript
浅谈es6中的元编程
Dec 01 Javascript
原生js简单实现放大镜特效
May 16 #Javascript
javascript 中iframe高度自适应(同域)实例详解
May 16 #Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
May 30 #Javascript
Vue.js tab实现选项卡切换
May 16 #Javascript
Vue.js手风琴菜单组件开发实例
May 16 #Javascript
Bootstrap fileinput文件上传预览插件使用详解
May 16 #Javascript
js自定义瀑布流布局插件
May 16 #Javascript
You might like
PHP 中执行排序与 MySQL 中排序
2009/04/21 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
Python基础学习之常见的内建函数整理
2017/09/06 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
经典c++面试题五
2014/12/17 面试题
.NET初级开发工程师面试题
2014/04/18 面试题
介绍一下linux的文件系统
2012/03/20 面试题
实习教师自我鉴定
2013/09/27 职场文书
酒店总经理工作职责
2013/12/13 职场文书
优秀的计算机专业求职信范文
2013/12/27 职场文书
对祖国的寄语大全
2014/04/11 职场文书
森林病虫害防治方案
2014/06/02 职场文书
开展创先争优活动总结
2014/08/28 职场文书
趣味运动会开幕词
2015/01/28 职场文书
工作犯错保证书
2015/05/11 职场文书
会议营销主持词
2015/07/03 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
详解nginx location指令
2022/01/18 Servers