<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
function selectCity() {
var collCities = [ ['选择城市'],[ '海淀区','朝阳区','西城区', '东城区' ],
[ '济南', '青岛', '烟台', '日照' ],
[ '石家庄', '保定', '邯郸', '廊坊' ],
[ '沈阳', '大连', '铁岭', '抚顺' ] ];
//获取两个下拉菜单对象
var oSelNode=document.getElementById("selid");
var oSubSelNode=document.getElementById("subselid");
//获取到底选的是哪个省
var index=oSelNode.selectedIndex;
//通过角标到容器去获取对应的城市数组
var arrCities=collCities[index];
//将城市列表的子菜单中的内容清空一下
//将for循环中的x++去掉了,原因是removeChild的删除
//的方式是,指针指向第一个删除的元素删除成功后指针会向前移动,
//同时数组内的元素会因为删除出现的空位整体向前移动,这用就会
//漏删,去掉x++就会是指针保持在0角标的位置,删除一个数组元素,
//出现空位后,后面的元素会移动将空位补全,这样就可以完全删除
for(var x=0;x<oSubSelNode.options.length;x++){
oSubSelNode.removeChild(oSubSelNode.options[x]);
}
//清除动作,也可以完成上面同样的方法
//oSubSelNode.length = 0;
//遍历这个数组。并将这个数组的元素封装成option对象,添加到子菜单 中
for(var x=0;x<arrCities.length;x++){
var oOptNode=document.createElement("option");
oOptNode.innerHTML=arrCities[x];
oSubSelNode.appendChild(oOptNode);
}
}
</script>
<select id="selid" onchange="selectCity()">
<option>选择省市</option>
<option value="beijing">北京</option>
<option>山东</option>
<option>河北</option>
<option>辽宁</option>
</select>
<select id="subselid">
<option>请选择城市</option>
</select>
</body>
</html>