二级联动 - 纯JS实现
假设现有一个通过选择下拉框中的省份,从而在后面的下拉框中获取得到其对应
城市。且用以纯JS实现,可参考如下代码:
<!DOCTYPE HTML>
<html>
<head>
<title>09-二级联动.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript">
var china = {
"provinces":[{
"name" : "吉林省",
"city" :["长春","吉林市","四平","松原","通化"]
},{
"name" : "辽宁省",
"city" :["沈阳","大连","鞍山","抚顺","铁岭"]
},{
"name" : "山东省",
"city" :["济南","青岛","威海","烟台","潍坊"]
},{
"name" : "上海市",
"city" :["闵行区","徐汇区"]
},{
"name" : "安徽省",
"city" :["合肥市","六安市"]
}]
};
window.onload = function () {
var provSelect = document.getElementById("province");
var provLength = china.provinces.length;
for (var i=0; i < provLength; i++){
var provOpt = document.createElement("option");
var provName = china.provinces[i].name;
provOpt.innerHTML = provName;
provSelect.appendChild(provOpt);
}
provSelect.onchange = function () {
var citySelect = document.getElementById("city");
for (var i = 1; i < citySelect.options.length;i++){
citySelect.removeChild(citySelect.options[i]);
i--;
}
var selProv = china.provinces[provSelect.options.selectedIndex - 1];
for (var i=0; i < selProv.city.length; i++){
var cityOpt = document.createElement("option");
var cityElement = selProv.city[i];
cityOpt.innerHTML = cityElement;
citySelect.appendChild(cityOpt);
}
}
}
</script>
</head>
<body>
<select id="province" name="province">
<option value="none">--请选择省--</option>
</select>
<select id="city" name="city">
<option value="none">--请选择市--</option>
</select>
</body>
</html>