JS学习两天后利用基本事件onchange实现省级联动
程序员文章站
2022-07-12 20:16:02
...
实现效果:(原理如下,可增加下拉框实现省,市,县,镇…联动)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>省市联动</title>
</head>
<body>
<!--省份的下拉框-->
<select name="province" id="province" onchange="changeCity()"> <!--使用改变下拉框onchange实现-->
<option value="0">请选择</option>
<option value="1">湖北省</option>
<option value="2">湖南省</option>
<option value="3">广东省</option>
</select>
<!--城市的下拉框-->
<select name="city" id="city">
<option value="0">请选择</option>
</select>
<script>
// 创建一个二维的数组,用来存储各个省份对应的城市
var cities = new Array();
cities[0] = new Array("武汉市","黄冈市");
cities[1] = new Array("长沙市","湘潭市","株洲市");
cities[2] = new Array("广州市","珠海市","深圳市");
function changeCity() {
// 获取省份的下拉框
var pro = document.getElementById("province");
// 获取城市下拉框
var city = document.getElementById("city");
// 获取你点击的省的value
var val = pro.value;
val = val - 1;
// 清空城市下拉框里面的城市
city.options.length = 1; //因为每次选新的省份,上次选的省份的城市也会出现,所以新添之前清空即可
// 遍历所有城市
for(var i=0;i<cities.length;i++){
// 匹配省份对应的城市
if(val == i){
// 遍历用户选择的省份的城市 <option value="3">广东省</option>这个里面的文本内容就称为文本节点。
for(var j=0;j<cities[i].length;j++){
// 创建城市的文本节点
var text = document.createTextNode(cities[i][j]);
// 创建元素节点
var opt = document.createElement("option");
// 将城市的文本节点添加到option元素节点里面
opt.appendChild(text) ; //在option标签里添加一个子节点,子节点里放文本
// 将添加了文本内容的option标签放在上面城市下拉框里面
city.appendChild(opt); //在城市下拉框里添加子节点,里面放option标签
}
}
}
}
</script>
</body>
</html>