<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<!-- 省 -->
<select id="selID">
<option>--选择省市--</option>
<option>北京</option>
<option>山东</option>
<option>湖南</option>
<option>广东</option>
</select>
<!-- 市 -->
<select id="subID">
<option>--选择城市--</option>
</select>
<script type="text/javascript">
var arr = [
["--选择城市--"],
["海定区", "东城区", "西城区", "朝阳区"],
["济南", "青岛", "日照", "威海"],
["长沙", "郴州", "岳阳", "株洲"],
["广州", "深圳", "惠州", "东莞"]
];
var selID = document.getElementById("selID");
var index = document.getElementById("selID").selectedIndex;
var subNode = document.getElementById("subID");
// 获取数组红指定的数据
var citys = arr[index];
selID.onchange = function() {
subNode.options.length = 0;
for (var x = 0; x < citys.length; x++) {
var optNode = document.createElement("option");
optNode.innerText = citys[x];
subNode.appendChild(optNode);
}
}
</script>
</body>
</html>
index = document.getElementById("selID").selectedIndex;
citys = arr[index];
把这两句放到onchange事件里面开头去,重新赋值。不然index的值一直都是0