原生JavaScript实现的简单省市县三级联动功能示例


Posted in Javascript onMay 27, 2017

本文实例讲述了原生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相关内容可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
extjs form textfield的隐藏方法
Dec 29 Javascript
JavaScript 定义function的三种方式小结
Oct 16 Javascript
jQuery示例收集
Nov 05 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
使用jquery 简单实现下拉菜单
Jan 14 Javascript
究竟什么是Node.js?Node.js有什么好处?
May 29 Javascript
JS遍历数组及打印数组实例分析
Jan 21 Javascript
全面总结Javascript对数组对象的各种操作
Jan 22 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
说说如何利用 Node.js 代理解决跨域问题
Apr 22 Javascript
JS实现简易计算器
Feb 14 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
May 27 #Javascript
详细讲解vue2+vuex+axios
May 27 #Javascript
AngularJS获取json数据的方法详解
May 27 #Javascript
vue中用H5实现文件上传的方法实例代码
May 27 #Javascript
详解vue2.0脚手架的webpack 配置文件分析
May 27 #Javascript
详解如何使用webpack打包Vue工程
May 27 #Javascript
Jquery中attr与prop的区别详解
May 27 #jQuery
You might like
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
2010/02/09 PHP
解析php中const与define的应用区别
2013/06/18 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
php文件上传简单实现方法
2015/01/24 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
应届生高等护理求职信
2013/10/12 职场文书
大学生军训自我评价分享
2013/11/09 职场文书
我的理想演讲稿
2014/04/30 职场文书
银行求职信
2014/05/31 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python