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 相关文章推荐
javascript验证身份证号
Mar 03 Javascript
DOM中事件处理概览与原理的全面解析
Aug 16 Javascript
利用JS实现页面删除并重新排序功能
Dec 09 Javascript
H5上传本地图片并预览功能
May 08 Javascript
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
js中时间格式化的几种方法
Jul 22 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
Sep 26 Javascript
element-ui如何防止重复提交的方法步骤
Dec 09 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
Feb 11 Javascript
Vuex中的Mutations的具体使用方法
Jun 01 Javascript
js编写简易的计算器
Jul 29 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
Sep 25 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类
2006/10/09 PHP
php文件上传的简单实例
2013/10/19 PHP
destoon各类调用汇总
2014/06/20 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
python实现井字棋游戏
2020/03/30 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
python实现梯度法 python最速下降法
2020/03/24 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
京东国际站:JOYBUY
2017/11/23 全球购物
自我评价范文分享
2014/01/04 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
angular4实现带搜索的下拉框
2022/03/25 Javascript