1. 程式人生 > >JavaScript中省市二級聯動建立方法

JavaScript中省市二級聯動建立方法

大家好,我是今天的博主,<一個想做全棧的鹹魚> 今天和大家一起學習一下JavaScript中省市二級聯動建立方法

分析:
1、使用(onchange)事件,繫結一個函式
2、建立一個二維陣列來儲存省份和城市,陣列分別來存放省份和城市
3、來獲取使用者選擇的省份,所有的值由value來控制,怎樣來獲取value?
4、使用方法傳參的方式來獲取(this.value)可以獲取到value的值
5、遍歷陣列,(獲取省份與使用者選擇的省份做比較,如果選擇的省份相同,繼續遍歷該省份下 所有的城市資訊)
6、建立城市文字節點
7、建立option元素節點
8、將城市文字新增到元素節點中
9、獲取第二個下拉列表,並將option元素節點新增進去
CreateTextNode() createElement() appendChild()
10、每次操作前清空第二個下拉列表的option內容

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>省市二級聯動</title>
		<script>
			//1.建立一個二維陣列用於儲存省份和城市
			var cities = new Array(3);
			cities[0] = new Array("武漢市","黃岡市","襄陽市","荊州市");
			cities[1] = new Array("長沙市","郴州市","株洲市","岳陽市");
			cities[2] = new Array("石家莊市","邯鄲市","廊坊市","保定市");
			cities[3] = new Array("鄭州市","洛陽市","開封市","安陽市");
			
			function changeCity(val){
				
				//7.獲取第二個下拉列表
				var cityEle = document.getElementById("city");
				
				//9.清空第二個下拉列表的option內容
				cityEle.options.length=0;
				
				//2.遍歷二維陣列中的省份
				for(var i=0;i<cities.length;i++){
					//注意,比較的是角標
					if(val==i){
						//3.遍歷使用者選擇的省份下的城市
						for(var j=0;j<cities[i].length;j++){
							//alert(cities[i][j]);
							//4.建立城市的文字節點
							var textNode = document.createTextNode(cities[i][j]);
							//5.建立option元素節點
							var opEle = document.createElement("option");
							//6.將城市的文字節點新增到option元素節點
							opEle.appendChild(textNode);
							//8.將option元素節點新增到第二個下拉列表中去
							cityEle.appendChild(opEle);
						}
					}
				}
			}
		</script>
	</head>
	<body>
		<table border="1" width="300" height="300" cellpadding="0" cellspacing="0">
			<tr>
				<td align="center">
					<select onchange="changeCity(this.value)">
					<option>--請選擇--</option>
					<option value="0">湖北</option>
					<option value="1">湖南</option>
					<option value="2">河北</option>
					<option value="3">河南</option>
					</select>
					<select id="city">
						
					</select>
				</td>
			</tr>
		</table>		
	</body>
</html>

好了,今天的學習總結完畢,大家有什麼問題,在下方留言即可。