1.先写body里的元素,画页面
省:<select name="" id="a">
<option value="">--请选择--</option>
</select>
市:<select name="" id="b">
<option value="">--请选择--</option>
</select>
区:<select name="" id="c">
<option value="">--请选择--</option>
</select>
2,关联数据,(用json写的数据模拟后台数据)
var city = [
{
name: "陕西省",
child: [
{
name: "西安市",
child: [
{
name: "高新区"
},
{
name: "未央区"
},
{
name: "莲湖区"
}
]
},
{
name: "宝鸡市",
child: [
{
name: "高新区"
},
{
name: "成仓区"
},
{
name: "渭滨区"
}
]
}
]
},
{
name: "随便省",
child: [
{
name: "随便市1",
child: [
{
name: "随便区11"
},
{
name: "随便区12"
},
{
name: "随便区13"
}
]
},
{
name: "随便市2",
child: [
{
name: "随便区21"
},
{
name: "随便区22"
},
{
name: "随便区23"
}
]
}
]
}
];
3,js添加相对应的下拉列表及选择事件
1,获取body里面的相关元素
var a=document.getElementById("a");
var b=document.getElementById("b");
var c=document.getElementById("c");
2,给a添加相关省
for(var i=0;i<city.length;i++){
var opt=new Option(city[i].name,i);//option(text,value) 存储value有利于选取下一级的元素
a.appendChild(opt);
}
3, 选择a的省,b的下拉列表为相关市
a.onchange=function(){
var index=this.value;
s=city[index].child;//
b.options.length=1;//options是b的option集合数组,b.options.length=1清空上一次a.onchange的a选项
for(var i=0;i<s.length;i++){
var opt=new Option(s[i].name,i);
b.appendChild(opt);
}
};
4, 选择b的市,c的下拉列表为相关区
b.onchange=function(){
var index=this.value;
c.options.length=1;
// console.log(s[index].child);
for(var i=0;i<s[index].child.length;i++){
var opt=new Option(s[index].child[i].name,i);
c.appendChild(opt);
}
}