js三级省市区选择
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Province_three</title>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
font: 400 12px/1.5 Arial,"Lucida Grande",Verdana,"Microsoft YaHei";
}
body{
padding: 50px;
}
select{
margin-right: 5px;
}
</style>
</head> <body> <script>
window.onload = function(){
//
var aProvince = [
"浙江省",
"江苏省",
"广东省"
]
var aCity = [
["杭州市","宁波市","舟山市","温州市","绍兴市"],
["苏州市","南京市"],
["广州市","深圳市"]
]
var aArea = [
[
["滨江区","西湖区","上城区"],
["海曙区","江东区","鄞州区","江北区"],
["定海区"],
["温岭区"],
["柯桥区"]
],
[
["吴中区"],
["鼓楼区"]
],
[
["越秀区","海珠区"],
["宝安区","龙岗区"]
]
]
//fn
function fnAddOption(innerH,target,isClear){
var oOption = document.createElement("option");
oOption.value = innerH;
oOption.innerHTML = innerH;
//clearOptions
if(isClear){
var tLength = target.children.length;
for(var i=0; i<tLength; i++){
target.removeChild(target.children[0]);
}
}
target.appendChild(oOption);
} function fnGetProvince(ele,initP,initC,initA){
ele.innerHTML = '<select><option>--选择省--</option></select><select><option>--选择市--</option></select><select><option>--选择区--</option></select>';
var oSelect1 = ele.getElementsByTagName("select")[0];
var oSelect2 = ele.getElementsByTagName("select")[1];
var oSelect3 = ele.getElementsByTagName("select")[2];
for(var i=0; i<aProvince.length; i++){
fnAddOption(aProvince[i],oSelect1);
//initP
if(typeof(initP)!="undefined" && initP == aProvince[i]){
oSelect1.getElementsByTagName("option")[i+1].setAttribute("selected",true);
onchangeS1();
//initC
if(typeof(initC)!="undefined"){
var oOptions = oSelect2.getElementsByTagName("option");
for(var j=0; j<oOptions.length; j++){
if(initC == oOptions[j].innerHTML){
oOptions[j].setAttribute("selected",true);
onchangeS2();
//initA
if(typeof(initA)!="undefined"){
var oOptions = oSelect3.getElementsByTagName("option");
for(var k=0; k<oOptions.length; k++){
if(initA == oOptions[k].innerHTML){
oOptions[k].setAttribute("selected",true);
}
}
}
}
}
}
}
//init end
} //select1 onchange event
function onchangeS1(){
var sIndex = oSelect1.selectedIndex; fnAddOption("--选择市--",oSelect2,true);
fnAddOption("--选择区--",oSelect3,true);
if(sIndex==0){
return;
}
for(var i=0; i<aCity[sIndex-1].length; i++){
fnAddOption(aCity[sIndex-1][i],oSelect2);
}
}
oSelect1.onchange = onchangeS1; //select2 onchange event
function onchangeS2(){
var sIndex = oSelect1.selectedIndex;
var sCityIndex = oSelect2.selectedIndex; fnAddOption("--选择区--",oSelect3,true);
if(sCityIndex==0){
return;
}
for(var i=0; i<aArea[sIndex-1][sCityIndex-1].length; i++){
fnAddOption(aArea[sIndex-1][sCityIndex-1][i],oSelect3);
}
}
oSelect2.onchange = onchangeS2; } //get fn
var oDiv = document.getElementById("div1");
fnGetProvince(oDiv,"广东省","深圳市","龙岗区");
}
</script> <div id="div1"></div> </body>
</html>
下面是二级省市选择:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Province_Two</title>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
font: 400 12px/1.5 Arial,"Lucida Grande",Verdana,"Microsoft YaHei";
}
body{
padding: 50px;
}
select{
margin-right: 5px;
}
</style>
</head> <body> <script>
window.onload = function(){
//
var aProvince = [
"浙江省",
"江苏省",
"广东省"
]
var aCity = [
["杭州市","宁波市","舟山市","温州市","绍兴市"],
["苏州市","南京市"],
["广州市","深圳市"]
] //fn
function fnAddOption(innerH,target){
var oOption = document.createElement("option");
oOption.value = innerH;
oOption.innerHTML = innerH;
target.appendChild(oOption);
} function fnGetProvince(ele){
ele.innerHTML = '<select><option>--请选择--</option></select><select><option>--请选择--</option></select>';
var oSelect1 = ele.getElementsByTagName("select")[0];
var oSelect2 = ele.getElementsByTagName("select")[1];
for(var i=0; i<aProvince.length; i++){
fnAddOption(aProvince[i],oSelect1);
} //select onchange event
oSelect1.onchange = function(){
var sIndex = oSelect1.selectedIndex;
var sOption = oSelect1[sIndex]; oSelect2.innerHTML="";
if(sIndex==0){
fnAddOption("--请选择--",oSelect2);
return;
}
for(var i=0; i<aCity[sIndex-1].length; i++){
fnAddOption(aCity[sIndex-1][i],oSelect2);
}
}
} //get fn
var oDiv = document.getElementById("div1");
fnGetProvince(oDiv);
}
</script> <div id="div1"></div> </body>
</html>
js三级省市区选择的更多相关文章
- 省市区js三级联动(原创)
看了一些网上的js三级联动,但感觉不是缺这,就是少那,决定亲自操刀写了一个,现记录如下,以备后用! <!DOCTYPE html> <html> <head> &l ...
- vue仿京东省市区三级联动选择组件
工作中需要一个盒京东购物车地址选择相似的一个省市区三级联动选择组件,google查了下都是下拉框形式的,于是自己写了一个,希望对使用vue开发项目的朋友有帮助,显示效果如下:使用vue2.0开发 ht ...
- jquery 三级关联选择效果
在网页制作中,三级关联选择经常遇到,于是归纳了一个进行参考 代码如下: <!DOCTYPE html> <html lang="en"> <head& ...
- asp.net mvc中使用jquery H5省市县三级地区选择控件
地区选择是项目开发中常用的操作,本文讲的控件是在手机端使用的选择控件,不仅可以用于实现地区选择,只要是3个级别的选择都可以实现,比如专业选择.行业选择.职位选择等.效果如下图所示: 附:本实例asp. ...
- [js开源组件开发]js手机联动选择地区仿ios 开源git
js手机联动选择地区 前言:由于网上找到了一个mobiscrool,比较全,但是不开源,只能试用15天,正式版竟然要三千块钱,穷人只能自己动手,写了个只针对弹窗地区选择的. 本站点所有的资源均在git ...
- [js开源组件开发]js手机联动选择日期 开源git
js手机联动选择日期 这里在前面的<js手机联动选择地区>的基础上,改造数据源之后形成的一个日期的选择器,当然你可以使用之前的PC上模式的<日期控件>,它同时也支持手机端,ht ...
- js控制日期选择框datetime-local和select的展开
注: js控制元素展开不受元素css属性的限制,例如opacity,z-index等 1. 使用js控制日期选择框的展开 ios: document.querySelector(".targ ...
- JS实现日期选择
简单的JS实现日期选择,对于PHP来说就像是遍历一样,不过我个人觉得JS这个很有趣,随便记录一下 开始: <select name="gh_date"><opti ...
- Python 练习:三级菜单选择城市(二)
优化了上一个三级菜单选择城:http://www.cnblogs.com/klvchen/p/8646466.html info = { 'GuangDong':{ 'GuangZhou': ['Ti ...
随机推荐
- supersr--addSubview和 insertSubView 区别
A addSubview B 是将B直接覆盖在A的最上层 例子: [self.view addSubview:scrollView]; A insertSubView B AtIndex:2 是将 ...
- iOS-Runtime-Headers
iOS8.4 及之前的头文件 私有及共有API https://github.com/nst/iOS-Runtime-Headers
- hdu1798(几何面积计算)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1798 题意:给出两个圆的圆心坐标与半径,求他们相交部分的大小 思路:有三种情况: 1. 两圆相离,ar ...
- NYOJ题目916胖子小的百宝袋
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsQAAAL6CAIAAAC+R9cJAAAgAElEQVR4nOydO5LcvM6GzyYmn4U47o
- win7下python3.4 ImportError: No module named 'MySQLdb'错误解决方法
首先,安装PyMySQL C:\Users\fnngj>python -m pip install PyMySQL 执行以下命令会报错: ImportError: No module named ...
- iOS - 线程管理
iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...
- vim 查找时忽略大小写
:set ic 忽略大小写#ignorecase :set noic 不忽略大小写#noignorecase
- ps -C nginx --no-header |wc -l
[root@ok ok]# ps --help|grep C -A all processes -C by command name -V,V show version L list format c ...
- jQuery学习笔记---兄弟元素、子元素和父元素的获取
我们这里主要总结jQuery中对某元素的兄弟元素.子元素和父元素的获取,原声的Javascript代码对这些元素的获取比较麻烦一些,而jQuery正好对这些方法进行封装,让我们更加方便的对这些元素进行 ...
- MYSQL建表语法(主键,外键,联合主键)
在看<Learning SQL>第二版, 慢慢打实SQL的基础. 建表一: ), lname ), gender ENUM(), city ), state ), country ), p ...