效果图如下
1.HTML 代码
首先定义两个下拉列表,一个用于选择省份,一个用于选择城市。两个 select 里的 class 适用于在CSS中修饰列表,当用户选择省份时,会触发其 change() 方法, this.valu e是将用户选择的哪个省传递到 change() 里。
<select class="se1" id="province" onchange="change(this.value)"><!--定义省份下拉列表--> <option value="1">山东</option><option value="2">安徽</option><option value="3">北京</option><option value="4">福建</option><option value="5">广东</option></select><select class="se2" id="city"><!--定义城市下拉列表--><option value="0">请选择城市</option></select>
.se1,.se2{<!--修饰两个下拉列表,可以不写-->height: 30px;width: 165px;}
<script >var citys = new Array(); //一个二维数组,用于存储省市,依次对应citys[1]=new Array("济南","青岛","烟台","济宁","德州","莱芜");citys[2]=new Array("安庆","阜阳","合肥","马鞍山","芜湖");citys[3]=new Array("北京");citys[4]=new Array("福州","龙岩","宁德","莆田");citys[5]=new Array("潮州","佛山","广州");function change(value) //change()方法 {document.getElementById("city").options.length=0;//初始化城市了下拉列表(每次选择省份时,自动清除上一次选择省份的城市 ) for(var m =0 ;m<citys[value].length;m++){//如果用户选择了广东,则会将5传递到 change() 方法里,就会选择city[5]={.......}, 循环取出里面的城市var opt=document.createElement("option");//创建一个 <option></option> 标签 var node=document.createTextNode(citys[value][m]+"");// 创建一个文本 文本内容就是 读取出来的城市 等同于 潮州opt.appendChild(node);//将文本添加到标签里等同于<option>潮州</option>document.getElementById("city").appendChild(opt);//将<option>潮州</option>添加到下拉列表里等同于<select class="se2" id="city"><option>潮州</option></select>}}</script>