JavaScript实现简单省市联动
本文介绍如何使用JavaScript实现简单的省市联动效果。通过创建包含国家与城市数据的二维数组,利用onchange事件监听下拉框选择变化,动态生成并更新城市选项。代码包含HTML结构、数组定义及DOM操作逻辑,适合初学者参考学习。
本文分享了一个使用JavaScript实现的简单省市联动示例代码,供读者参考。
实现步骤
首先创建一个包含两个下拉选择框的页面。为第一个下拉框绑定onchange事件,当选项改变时,调用add1方法并传入当前选中option的value值。接着,创建一个二维数组来存储数据,其中每个数组的第一个元素代表国家名称,后续元素为该国家下的城市列表。
具体实现逻辑如下:
首先遍历二维数组,找到与传递过来的value值相匹配的国家数组。
将找到的数组中的第一个元素(国家名)与传递过来的值进行比对。
如果两者相同,则获取该数组中第一个元素之后的所有元素,即对应的城市列表。
获取用于显示城市的select元素。
使用appendChild方法将新创建的option元素添加到城市select中。创建option元素需要三个步骤:创建option对象、添加文本节点、将其追加到select中。
由于每次选择国家时都需要向city下拉框中添加option,如果不处理,第二次及后续的选择会不断追加选项,导致列表重复。
因此,在每次添加新选项之前,需要判断city下拉框中是否已存在option。如果存在,应先将其删除,再添加新的选项。
具体代码实现如下:
<html >
<head>
<title>省市联动</title>
<style type = "text/css">
</style>
</head>
<body>
<select id="countyid" onchange="add1(this.value)">
<option value="0">--请选择--</option>
<option value="中国">中国</option>
<option value="美国">美国</option>
<option value="英国">英国</option>
<option value="日本">日本</option>
</select>
<select id="cityid" >
</select>
</body>
<script type="text/javascript">
var arr = new Array(4);
arr[0]=["中国","北京","上海","深圳","杭州"];
arr[1]=["美国","华盛顿","纽约","底特律","芝加哥"];
arr[2]=["英国","伦敦","伯明翰","利兹","利物浦"];
arr[3]=["日本","东京","大阪","北海道","长崎"];
/*
步骤:
1.遍历二维数组
2.得到一个数组-国家对应关系
3.用数组中第一个值与传递过来的值作比较
4.如果相同,获取到第一个值后面的元素
5.得到city的select
6.添加过去-appendChild方法
-创建option(三步)
由于每次都要向city里面添加option
第二次添加,会追加。
* 每次添加之前,判断一下city里面是否有option,如果有,删除
*/
function add1(val){
//得到city里面的select
var city1 = document.getElementById("cityid");
var ops = city1.getElementsByTagName("option");
for(var m=0;m<ops.length;m++){
var op = ops[m];
city1.removeChild(op);
m--;
}
for(var i=0;i<arr.length;i++){
arr1=arr[i];
var firstValue = arr1[0];
if (firstValue == val)
{
//创建option
for(var j=1;j<arr1.length;j++){
var value1 = arr1[j];
var option1=document.createElement("option");
var text1 = document.createTextNode(value1);
option1.appendChild(text1);
city1.appendChild(option1);
}
}
}
}
</script>
</html>
运行效果演示:

以上就是本文的全部内容,希望对读者有所帮助。
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
