在html中下拉菜单项有时我们选中第一个值时,第二个下拉列表的值也会随之变化,例如籍贯选项

  当我们选中第一个省份的值时,后边城市的列表值都会随之变化为选中省份的城市,具体实现js代码如下:

  1,我们用一个二维数组来放省份及城市

  

<script type="text/javascript">
			$(function(){
			var arr=[];
			arr[0]=["苏州","无锡","昆山","徐州"];
			arr[1]=["洛阳","三门峡","郑州","开封"];
			arr[2]=["西安","宝鸡","咸阳","延安"];
			arr[3]=["杭州","宁波","绍兴","温州"];
			arr[4]=["东莞","佛山","惠州","广州"];
			$("#province").change(function(){
				$("#city").empty();
				var val=$(this).val();
				$.each(arr, function(index,sheng) {
					if(index==val){
						$.each(arr[index],function(i,shi){
							var txt=document.createTextNode(shi);
							var op=document.createElement("option");
							$("#city").append(op);
							$(op).append(txt);
						})
					}
				});
			});
			
			});	
		</script>

 2,我们用一个对象来放置省份及城市,具体代码如下

<script  $(function(){     
//创建一个对象,对象格式为 name:value,本例中value的值为一个数 
var city={"苏州":["苏州","徐州","常州","昆山"],    
          "河南":["郑州","开封","洛阳","三门峡"],   
      "广东":["东莞","惠州","广州","佛山"]};      /*当第一个下拉列表的值变化时触发函数*/ $("[name='sheng']").change(function(){        //获得当前选中的值     var el=$(this).val();        //清空第二个下拉列表     $("[name='shi']").empty();        //遍历name为el的对象值     $(city[el]).each(function(index,item){          //创建文本节点       var txt=document.createTextNode(item);          //创建元素       var op=document.createElement("option");          /*将元素加入name为shi的元素中*/       $("[name='shi']").append(op);         $(op).append(txt);/*将文本添加进元素中*/     })   });   }); </script>

 

 

 html文件如下

<table>
			<tr>
				<td>籍贯</td>
				<td>
					<select id="province" name="province">
						<label for=""></label>
						<option value="0">江苏</option>
						<option value="1">河南</option>
						<option value="2">陕西</option>
						<option value="3">浙江</option>
						<option value="4">广东</option>
					</select>
					<select id="city">
						
					</select>
				</td>
			</tr>
			<tr>
				<td>意向工作城市</td>
				<td>
					<select name="sheng">
						<option >苏州</option>
						<option >广东</option>
						<option >河南</option>
					</select>
					<select name="shi">
						
					</select>
				</td>
			</tr>
		</table>