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可访问其它域名的cookie的方法
Sep 18 Javascript
JavaScript表单常用验证集合
Jan 16 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
JavaScript高级程序设计 事件学习笔记
Sep 10 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
jquery实现用户信息修改验证输入方法汇总
Jul 18 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
Nov 11 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
Nov 15 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
Jul 10 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
javascript 函数的暂停和恢复实例详解
Apr 25 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下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
php下获取http状态的实现代码
2014/05/09 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
javascript操作符&quot;!~&quot;详解
2015/02/10 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
少女风vue组件库的制作全过程
2019/05/15 Javascript
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
python合并同类型excel表格的方法
2018/04/01 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
python通过http下载文件的方法详解
2019/07/26 Python
Python中qutip用法示例详解
2020/10/02 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
大课间体育活动方案
2014/03/12 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
法人授权委托书
2014/09/16 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
《乙女游戏世界对路人角色很不友好》OP主题曲无字幕动画MV公开
2022/04/05 日漫