本文介绍一种基于原生JavaScript实现的城市二级联动选择插件。该方案利用数组存储省市数据,通过循环动态生成Select选项,无需依赖第三方库。文中提供了完整的HTML结构、JavaScript逻辑代码及在线演示地址,适用于需要轻量级省市级联功能的前端开发场景。
城市二级联动插件实现概述
本文详细介绍如何使用原生JavaScript开发一个简单的城市二级联动选择插件,供开发者参考与借鉴。
城市联动菜单在前端开发中较为常见,本示例以Select控件为基础,纯JavaScript实现核心逻辑。代码运用了数组存储数据及循环遍历DOM元素等基础技术。请注意,示例中的数据仅为演示用途,实际使用时需根据业务需求补充完整的省市数据。
插件运行效果如下图所示:

如需在线查看演示,请访问以下地址:
http://demo.jb51.net/js/2015/js-ejld-city-cha-plug-codes/
核心代码实现
具体实现代码如下所示:
<html>
<head>
<title>Js城市二级联动选择插件</title>
<script>
var citys=new Array(
new Array("南京","淮安","扬州","常州",'其它'),
new Array("北京"),
new Array("天津"),
new Array("上海"),
new Array("其它")
);
function scity(pname,cname){
var province=['江苏省','北京','天津','上海','其它'];
document.write('<select id="pro" onchange="selectc(this)" name="'+pname+'">');
document.write('<option value="">--选择省份--</option>')
for(var i=0;i<province.length;i++){
document.write('<option value="'+province[i]+'">'+province[i]+'</option>');
}
document.write('</select>');
document.write('<select id="city" name="'+cname+'">');
document.write('<option value="">--选择城市--</option>');
document.write('</select>');
selectc(document.getElementById("pro"));
}
function selectc(pobj){
var index=pobj.selectedIndex-1;
var cobj=document.getElementById("city");
cobj.innerHTML='';
if(index>=0){
for(var i=0;i<citys[index].length;i++){
var option=document.createElement("option");
var text=citys[index][i];
option.value=text;
option.innerHTML=text;
cobj.appendChild(option);
}
}else{
var option=document.createElement("option");
option.value="";
option.innerHTML="--选择城市--";
cobj.appendChild(option);
}
}
</script>
</head>
<body>
<script>
scity('p','c');
</script>
</body>
</html>
希望上述代码示例能为您的JavaScript程序设计提供有益帮助。