JS实现简单省市二级联动


Posted in Javascript onNovember 27, 2019

刚始学习java刚好看到用js实现省市二级联动的效果,就想着写篇博客,顺便检验下自己的学习成果。

好了废话少说先看看实际效果:

JS实现简单省市二级联动

技术分析:

要实现这个功能呢,首先要用到html+js

这里用建一个下拉列表,绑定onchange事件

<select onchange="changeCity(this.value)">
 <option>--请选择--</option>
 <option value="0">湖北</option>
 <option value="1">湖南</option>
 <option value="2">河北</option>
 <option value="3">河南</option>
 </select>
 <select id="city">
 
</select>

好了下面是script部分了

<script>
 //1.创建一个二维数组用于存储省份和城市
 var cities = new Array(3);
 cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");
 cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");
 cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");
 cities[3] = new Array("郑州市","洛阳市","开封市","安阳市");
 
 function changeCity(val){
 
 //7.获取第二个下拉列表
 var c=document.getElementById("city");
 
 //9.清空第二个下拉列表的option内容
 c.options.length=0;
 
 //2.遍历二维数组中的省份
 for(var i=0;i<cities.length;i++){
 //注意,比较的是角标
 if(val==i){
 //3.遍历用户选择的省份下的城市
 for(var j=0;j<cities[i].length;j++){
 //alert(cities[i][j]);
 //4.创建城市的文本节点
 var a = document.createTextNode(cities[i][j]);
 //5.创建option元素节点
 var b = document.createElement("option");
 //6.将城市的文本节点添加到option元素节点
 b.appendChild(a);
 //8.将option元素节点添加到第二个下拉列表中去
 c.appendChild(b);
 }
 }
 }
 }
</script>

这样这个简单的省市二级联动就完成了,是不是特别简单呢?本人因为偷懒所以只写了四个省市,如果想完善点可以自己添加省市哦。

小编再为大家分享一位网友分享的一段代码:原生js实现省市二级联动,再此谢谢作者的分享。

通过document.createElement()创建option选项,再遍历数组appendChild到select对象内,三级联动就是用三位数组和嵌套遍历来实现。

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>js省市二级联动</title>
 </head>
 <body>
 <form name="aform" method="get" action="#">
 省份:<select id="province" name="province" onchange="changeProvince(this.selectedIndex)"></select>
 城市:<select id="city" name="city"></select>
 </form>
 </body>
</html>

<script type="text/javascript">
 var provinces=["请选择省份","北京市","天津市","上海市","重庆市","江苏省","浙江省","江西省","海南省"];
 var citys=[
 ["请选择城市"],
 ["北京市"],
 ["天津市"],
 ["上海市"],
 ["重庆市"],
 ["南京市","无锡市","徐州市","常州市","苏州市","南通市","连云港市","淮安市","盐城市","扬州市","镇江市","泰州市","宿迁市"],
 ["杭州市","宁波市","温州市","绍兴市","湖州市","嘉兴市","金华市","衢州市","台州市","丽水市","舟山"],
 ["南昌市","九江市","上饶市","抚州市","宜春市","吉安市","赣州市","景德镇","萍乡市","新余市","鹰潭市"],
 ["海口市","三亚市","三沙市","儋州市"]
 ];
 window.onload=function(){
 var province=document.getElementById("province");
 var city=document.getElementById("city");
 var index=0;
 //创建好后加入到列表中
 for(var i in provinces)
 {
 var option = document.createElement("option");
 option.text=provinces[i];
 option.value=provinces[i];
 province.appendChild(option);
 }
 var option = document.createElement("option");
 option.text=citys[index];
 option.value=citys[index];
 city.appendChild(option);
 }
 
 function changeProvince(selectedIndex){
 var city=document.getElementById("city");
 city.options.length=0;
 for(var i in citys[selectedIndex])
 {
 var option = document.createElement("option");
 option.text=citys[selectedIndex][i];
 option.value=citys[selectedIndex][i];
 city.appendChild(option);
 }
 
 }
</script>

更多关于菜单文章的精彩内容请点击专题:Javascript级联菜单特效汇总

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

Javascript 相关文章推荐
js操作时间(年-月-日 时-分-秒 星期几)
Jun 20 Javascript
jquery cookie实现的简单换肤功能适合小网站
Aug 25 Javascript
window.navigate 与 window.location.href 的使用区别介绍
Sep 21 Javascript
让alert不出现弹窗的两种方法
May 18 Javascript
JavaScript验证电子邮箱的函数
Aug 22 Javascript
JavaScript控制按钮可用或不可用的方法
Apr 03 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
Dec 31 Javascript
Mac中安装nvm的教程分享
Dec 11 Javascript
JavaScript实现重力下落与弹性效果的方法分析
Dec 20 Javascript
详解vue 数组和对象渲染问题
Sep 21 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
Oct 09 Javascript
JavaScript枚举选择jquery插件代码实例
Nov 17 jQuery
Angular value与ngValue区别详解
Nov 27 #Javascript
原生js实现二级联动菜单
Nov 27 #Javascript
微信小程序wxml列表渲染原理解析
Nov 27 #Javascript
原生js实现下拉选项卡
Nov 27 #Javascript
浅析Vue下的components模板使用及应用
Nov 27 #Javascript
d3.js 地铁轨道交通项目实战
Nov 27 #Javascript
微信小程序表单验证WxValidate的使用
Nov 27 #Javascript
You might like
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
JS 类型转换常见方法小结
2010/05/31 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
JS高级笔记
2011/07/13 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
python获取目录下所有文件的方法
2015/06/01 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
python爬取微信公众号文章
2018/08/31 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
商务宴会祝酒词
2015/08/11 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers