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 相关文章推荐
捕获关闭窗口的脚本
Jan 10 Javascript
Jquery插件easyUi实现表单验证示例
Dec 15 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
Vue.js双向绑定实现原理详解
Dec 22 Javascript
Web制作验证码功能实例代码
Jun 19 Javascript
浅谈基于Vue.js的移动组件库cube-ui
Dec 20 Javascript
webpack4简单入门实例
Sep 06 Javascript
微信小程序框架wepy之动态控制类名
Sep 14 Javascript
vue-router之nuxt动态路由设置的两种方法小结
Sep 26 Javascript
详解Vue底部导航栏组件
May 02 Javascript
微信小程序开发之左右分栏效果的实例代码
May 20 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
Jan 22 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 array_merge函数使用需要注意的一个问题
2015/03/30 PHP
php关联数组快速排序的方法
2015/04/17 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python运用于数据分析的简单教程
2015/03/27 Python
Python中join和split用法实例
2015/04/14 Python
MySQL最常见的操作语句小结
2015/05/07 Python
详解Python中的array数组模块相关使用
2016/07/05 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
vue实现倒计时功能
2021/03/24 Vue.js
机械电子工程毕业生自荐信
2013/11/23 职场文书
课改先进个人汇报材料
2014/01/26 职场文书
校园广播稿500字
2014/02/04 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
网络技术专业推荐信
2014/02/20 职场文书
捐助倡议书范文
2014/04/15 职场文书
迟到检讨书
2015/01/26 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
自主招生专家推荐信
2015/03/26 职场文书
python实现过滤敏感词
2021/05/08 Python
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript