原生JavaScript实现的简单省市县 * 联动功能示例
作者:最美FE 时间:2024-06-05 09:13:24
本文实例讲述了原生JavaScript实现的简单省市县 * 联动功能。分享给大家供大家参考,具体如下:
* 联动是我们写表单时必不可少的,比如在写收货地址时,就用到他了,最近在看原生JavaScript,从基础写起,待完善,以后再写个jquery版的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> * 联动菜单</title>
<style>
select {
font-family: "萝莉体 第二版";
}
.hide {
display: none;
}
</style>
</head>
<body>
<div>
<select id="province">
<option>-请选择-</option>
</select>
<select id="city" class="hide">
<option>-请选择-</option>
</select>
<select id="area" class="hide">
<option>-请选择-</option>
</select>
</div>
<script>
var provinceList = ['北京市', '河北省', '浙江省'];
var cityList = [['东城区', '西城区', '海淀区'], ['廊坊市', '唐山市', '石家庄市', '承德市'], ['杭州市', '温州市', '宁波市', '嘉兴市', '绍兴市']];
var areasList = [
[
['东城区1', '东城区2', '东城区3'],
['西城区1', '西城区2', '西城区3'],
['海淀区1', '海淀区2', '海淀区3']
],
[
['廊坊市1', '廊坊市2', '廊坊市3', '廊坊市4'],
['唐山市1', '唐山市2', '唐山市3', '唐山市4'],
['石家庄市1', '石家庄市2', '石家庄市3', '石家庄市4'],
['承德市1', '承德市2', '承德市3', '承德市4']
],
[
['杭州市1', '杭州市2', '杭州市3', '杭州市4', '杭州市5'],
['温州市1', '温州市2', '温州市3', '温州市4', '温州市5'],
['宁波市1', '宁波市2', '宁波市3', '宁波市4', '宁波市5'],
['嘉兴市1', '嘉兴市2', '嘉兴市3', '嘉兴市4', '嘉兴市5'],
['绍兴市1', '绍兴市2', '绍兴市3', '绍兴市4', '绍兴市5']
]
];
//1.获取元素
var province = document.getElementById("province");
var city = document.getElementById("city");
var area = document.getElementById("area");
//2.给省的选择框赋值,
// ----使用自执行函数,避免污染全局变量-----
(function () {
for (var i = 0; i < provinceList.length; i++) {
var myOption = document.createElement("option");
myOption.innerHTML = provinceList[i];
//设置value值
myOption.value = i;
province.appendChild(myOption);
}
})();
//3.设置选择省的行为函数
province.onchange = function (e) {
city.style.display = "inline-block"; //设置第二个出现
while (city.children.length > 1) { //当省设置为“请选择”时,移除子元素
city.removeChild(city.lastElementChild);
}
while (area.children.length > 1) { //当市设置为“请选择”时,移除子元素
area.removeChild(area.lastElementChild);
}
if (cityList[this.value]) {//当设置为请选择时不显示列表
for (var i = 0; i < cityList[this.value].length; i++) { //添加市的列表
var myOption = document.createElement("option");
myOption.innerHTML = cityList[this.value][i];
//设置value值
myOption.value = i;
city.appendChild(myOption);
}
}
};
//4.设置选择市的行为函数
city.onchange = function (e) {
area.style.display = "inline-block"; //设置第二个出现
while (area.children.length > 1) { //当市设置为“请选择”时,移除子元素
area.removeChild(area.lastElementChild);
}
if (areasList[province.value][this.value]) {//当设置为"请选择"时不显示列表
for (var i = 0; i < areasList[province.value][this.value].length; i++) { //添加市的列表
var myOption = document.createElement("option");
myOption.innerHTML = areasList[province.value][this.value][i];
area.appendChild(myOption);
}
}
}
</script>
</body>
</html>
运行效果图如下:
希望本文所述对大家JavaScript程序设计有所帮助。
标签:JavaScript, , 联动
0
投稿
猜你喜欢
BootStrap 表单控件之单选按钮水平排列
2024-05-11 09:43:18
Mac下python包管理工具pip的安装
2023-11-19 11:09:46
python实现简单的购物程序代码实例
2022-09-03 05:29:13
精心整理总结的Python自动化测试面试题
2022-07-27 08:13:00
Asp中Server.ScriptTimeOut属性需要注意的一点
2011-04-27 08:41:00
Python使用背景差分器实现运动物体检测
2023-06-21 09:37:22
python实现爬取百度图片的方法示例
2021-11-22 00:46:04
Python类中__init__() 和self的详细解析
2021-04-22 22:05:06
网页设计布局原则
2010-04-20 17:18:00
php获取qq用户昵称和在线状态(实例分析)
2023-11-14 11:19:22
SQL Server 2008及更高版本数据库恢复方法之日志尾部备份
2024-01-25 09:22:37
Python实现一键下载视频脚本
2023-08-26 18:51:17
浏览器tab的设计
2008-08-11 13:03:00
Python matplotlib的使用并自定义colormap的方法
2023-02-02 09:41:40
django与小程序实现登录验证功能的示例代码
2023-08-04 01:06:58
js链表操作(实例讲解)
2024-04-17 10:37:33
Python 实现训练集、测试集随机划分
2023-02-12 01:41:24
golang通过node_exporter监控GPU及cpu频率、温度的代码
2024-02-04 14:53:22
js实现简单选项卡功能
2024-04-22 13:05:47
MySQL故障切换笔记之应用无感知设计详解
2024-01-21 17:36:22