JavaScript实现三级联动菜单效果

发布时间 - 2026-01-11 02:49:00    点击率:

三级联动考察的应该是对于数据的处理,只要清楚其中的关系,再多几级都是一样的:

html部分:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />
 <title>3级联动菜单</title>
 <script>
 var region = {
  广东:
  {
  "广州":["广州1","广州2","广州3"],

  "珠海":["珠海1","珠海2","珠海3"],

  "佛山":["佛山1"]
  },
  湖南:
  {
  "常德":["石门","桃源","临澧","汉寿"],

  "益阳":["益阳1","益阳2","益阳3"]
  }
 }
 </script>
</head>
 <body>

 <select id="province" onchange="change(this.value);">
  <option>请选择省份</option>
 </select>

 <select id="city" onchange="countyChange(this.value);">
  <option>请选择地市</option>
 </select>

 <select id="county">
  <option>请选择县城</option>
 </select>
 <script src='test.js'></script>
 </body>
</html>

js部分:

var province = document.querySelector("#province");
 var city = document.querySelector("#city");
 var county = document.querySelector("#county");
 //二级联动不用定义你选的省份,直接用省份(key)来决定下面的市(value)值
 var provinceName = null;

 for (ele in region){
 var op = new Option(ele , ele , false , false); //new Option("文本","值",true,true).后面两个true分别表示默认被选中和有效
 //console.log(op);
 province.options[province.length] = op;
 }

 var change = function(src){
 city.innerHTML = "";
 if(src === '请选择省份'){
  var op = new Option('请选择地市' , '请选择地市' , false , false);
  city.options[0] = op;
 }else{
  for (index in region[src]){
  //console.log(index);
  var op = new Option(index , index , false , false);
  city.options[city.length] = op;
  }
 }
 //记住选择省份的值
 provinceName=src;
 countyChange(city.value)
 }

 var countyChange = function(src2){
 county.innerHTML = "";
 if(src2 === '请选择地市'){
  var op = new Option('请选择县城','请选择县城', false , false);
  county.options[0] = op;
 }else{
  for (index in region[provinceName][src2]){
  //console.log(index);
  var op = new Option(region[provinceName][src2][index] , region[provinceName][src2][index] , false , false);
  county.options[county.length] = op;
  }
 }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js三级联动菜单  # js三级菜单  # js联动菜单  # JS实多级联动下拉菜单类  # 简单实现省市区联动菜单!  # jsp从数据库获取数据填充下拉框实现二级联动菜单的方法  # js实现简单的联动菜单效果  # JS简单实现多级Select联动菜单效果代码  # 实例详解AngularJS实现无限级联动菜单  # 从QQ网站中提取的纯JS省市区三级联动菜单  # 基于Javascript实现二级联动菜单效果  # JS实现的五级联动菜单效果完整实例  # PHP+JS三级菜单联动菜单实现方法  # JavaScript实现联动菜单特效  # 请选择  # 益阳  # 珠海  # 广州  # 佛山  # 临澧  # 汉寿  # 常德  # 湖南  # 广东  # 再多  # 大家多多  # 应该是  # 级联  # 是一样的  # title  # script  # charset  # utf  # meta 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: jQuery中的100个技巧汇总  JS中对数组元素进行增删改移的方法总结  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel如何自定义错误页面(404, 500)?(代码示例)  bootstrap日历插件datetimepicker使用方法  Laravel怎么使用Intervention Image库处理图片上传和缩放  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何用西部建站助手快速创建专业网站?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  中山网站推广排名,中山信息港登录入口?  网站制作壁纸教程视频,电脑壁纸网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何快速生成橙子建站落地页链接?  电商网站制作价格怎么算,网上拍卖流程以及规则?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何用美橙互联一键搭建多站合一网站?  历史网站制作软件,华为如何找回被删除的网站?  如何在宝塔面板创建新站点?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel如何实现数据库事务?(DB Facade示例)  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何在自有机房高效搭建专业网站?  Laravel如何使用Gate和Policy进行授权?(权限控制)  Python3.6正式版新特性预览  网站优化排名时,需要考虑哪些问题呢?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  图册素材网站设计制作软件,图册的导出方式有几种?  动图在线制作网站有哪些,滑动动图图集怎么做?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  高端建站三要素:定制模板、企业官网与响应式设计优化  linux写shell需要注意的问题(必看)  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  详解jQuery中基本的动画方法  如何快速打造个性化非模板自助建站?  Laravel如何使用模型观察者?(Observer代码示例)  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  html5的keygen标签为什么废弃_替代方案说明【解答】  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  ,交易猫的商品怎么发布到网站上去?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  奇安信“盘古石”团队突破 iOS 26.1 提权