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 相关文章推荐
javascript 计算两个整数的百分比值
Dec 26 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
May 25 Javascript
js浏览器本地存储store.js介绍及应用
May 13 Javascript
20个实用的JavaScript技巧分享
Nov 28 Javascript
使用JavaScript开发IE浏览器本地插件实例
Feb 18 Javascript
JS实现的仿QQ空间图片弹出效果代码
Feb 23 Javascript
javascript中Number的方法小结
Nov 21 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
ionic实现下拉刷新载入数据功能
May 11 Javascript
Vue实现web分页组件详解
Nov 28 Javascript
vue 添加vux的代码讲解
Nov 30 Javascript
react-native-video实现视频全屏播放的方法
Mar 19 Javascript
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 mcrypt可逆加密算法分析
2011/07/19 PHP
openflashchart 2.0 简单案例php版
2012/05/21 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
纯php生成随机密码
2015/10/30 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
PHP分享图片的生成方法
2018/04/25 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
Python使用sorted排序的方法小结
2017/07/28 Python
python操作列表的函数使用代码详解
2017/12/28 Python
Python将图片转换为字符画的方法
2020/06/16 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
公司活动邀请函
2014/01/24 职场文书
经典安踏广告词
2014/03/21 职场文书
文明市民先进事迹
2014/05/15 职场文书
企业总经理助理岗位职责
2014/09/12 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
Java内存模型之happens-before概念详解
2021/06/13 Java/Android