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中用星号表示预录入内容的实现代码
Jan 08 Javascript
JS实现的省份级联实例代码
Jun 24 Javascript
jQuery实现切换页面过渡动画效果
Oct 29 Javascript
jquery轮播的实现方式 附完整实例
Jul 28 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
Dec 21 Javascript
详解Vue-cli 创建的项目如何跨域请求
May 18 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
Oct 17 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
vue中父子组件注意事项,传值及slot应用技巧
May 09 Javascript
微信小程序实现漂亮的弹窗效果
May 26 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
Apr 22 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删除目录及目录下所有文件的方法详解
2013/06/06 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
学习ExtJS fit布局使用说明
2009/10/08 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
vue接口请求加密实例
2020/08/11 Javascript
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
python中的tcp示例详解
2018/12/09 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
大学生求职中的自我评价
2013/10/01 职场文书
品酒会策划方案
2014/05/26 职场文书
高中生学习计划书
2014/09/15 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
安全责任书
2015/01/29 职场文书