基于原生JavaScript实现城市二级联动下拉菜单

作者:木棉时间:2026-10-29 14:01:16浏览:349

本文介绍一种基于原生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程序设计提供有益帮助。

作者最新文章