1 <!DOCTYPE html>
2
3 <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <meta charset="utf-8" />
6 <title></title>
7 </head>
8 <body>
9 <style type="text/css">
10 .cascade { float: left; width: 120px; height: 30px; }
11 .cascade select { width: 100%; height: 100%; }
12 </style>
13
14 <div class="cascade">
15 <select id="province" onchange="change();">
16 <option>--请选择省份--</option>
17 </select>
18 </div>
19
20 <div class="cascade">
21 <select id="city">
22 <option>--请选择市--</option>
23 </select>
24 </div>
25
26 <script type="text/javascript">
27 //首先建立一个你需要省,和它对应的市的数组,如下:
28 var cityList = new Array();
29 cityList['北京市'] = ['朝阳区', '东城区', '西城区', '海淀区', '宣武区', '丰台区', '怀柔', '延庆', '房山'];
30 cityList['上海市'] = ['宝山区', '长宁区', '丰贤区', '虹口区', '黄浦区', '青浦区', '南汇区', '徐汇区', '卢湾区'];
31 cityList['广州省'] = ['广州市', '惠州市', '汕头市', '珠海市', '佛山市', '中山市', '东莞市'];
32 cityList['深圳市'] = ['福田区', '罗湖区', '盐田区', '宝安区', '龙岗区', '南山区', '深圳周边'];
33 cityList['重庆市'] = ['俞中区', '南岸区', '江北区', '沙坪坝区', '九龙坡区', '渝北区', '大渡口区', '北碚区'];
34 cityList['天津市'] = ['和平区', '河西区', '南开区', '河北区', '河东区', '红桥区', '塘古区', '开发区'];
35 cityList['江苏省'] = ['南京市', '苏州市', '无锡市'];
36 cityList['浙江省'] = ['杭州市', '宁波市', '温州市'];
37 cityList['四川省'] = ['四川省', '成都市'];
38 cityList['海南省'] = ['海口市'];
39 cityList['福建省'] = ['福州市', '厦门市', '泉州市', '漳州市'];
40 cityList['山东省'] = ['济南市', '青岛市', '烟台市'];
41 cityList['江西省'] = ['江西省', '南昌市'];
42 cityList['广西省'] = ['柳州市', '南宁市'];
43 cityList['安徽省'] = ['安徽省', '合肥市'];
44 cityList['河北省'] = ['邯郸市', '石家庄市'];
45 cityList['河南省'] = ['郑州市', '洛阳市'];
46 cityList['湖北省'] = ['武汉市', '宜昌市'];
47 cityList['湖南省'] = ['湖南省', '长沙市'];
48 cityList['陕西省'] = ['陕西省', '西安市'];
49 cityList['山西省'] = ['山西省', '太原市'];
50 cityList['黑龙江省'] = ['黑龙江省', '哈尔滨市'];
51 cityList['其他'] = ['其他'];
52
53 /**科普小知识
54 *Option(text,value) 返回包含下拉列表框中的所有选项的一个数组,text==选项文本值;value==文本值
55 *add(new,old) 用于向<select>中添加一个<option>标签,
56 new表示新添加到old之前的Option对象,
57 如果old为null,那则直接添加到<select>所有选项的末尾
58 *for(in) 循环遍历对象的属性 ,例:for(var i in cityList)
59 这里的i==cityList的属性,就是省份名称
60 例:for (var j in city[i])
61 这里的j==cityList[i]的属性,cityList中下表为i的属性的属性,就是每个城市的index(下标)
62 **/
63
64 //然后写一个方法把这一大长串的数组给他调到你需要的地方去
65 function change() {
66 var pVal = document.getElementById("province").value; //获取省份列表中的值
67 var c = document.getElementById("city"); //获取城市列表
68 c.options.length = 0; //清楚当前城市列表中的值
69 for (var i in cityList) { //循环遍历cityList的属性
70 if (i == pVal) { //判断当i等于省份列表中的值时;
71 for (var j in cityList[i]) { //循环遍历cityList[i]的属性
72 c.add(new Option(cityList[i][j], cityList[i][j]), null)
73 //城市列表的末尾增加一个<option>选项,text:cityList[i][j],value:cityList[i][j]
74 }
75 break;
76 }
77 }
78 }
79
80 function allCity() {
81 var p = document.getElementById("province"); //获取省份列表
82 for (var i in cityList) { //循环遍历cityList的属性
83 p.add(new Option(i, i), null);
84 //省份列表的末尾增加一个<option>选项,text:i,value:i
85 }
86 }
87 window.onload = allCity;
88
89
90 </script>
91
92
93
94
95 </body>
96 </html>