当前位置: 首页 > news >正文

javascript 实战案例 二级联动下拉选框

本案例完全使用原生javascript实现,使用时只需填充platform_list二维数组即可,platform_list填充规则如下:
[‘一级选项1’,‘二级选项11’,‘二级选项12’,‘二级选项13’,‘二级选项14’,…],
[‘一级选项2’,‘二级选项21’,‘二级选项22’,‘二级选项23’,‘二级选项24’,…],
[‘一级选项3’,‘二级选项31’,‘二级选项32’,‘二级选项33’,‘二级选项34’,…]

以省份和城市为例:

const platform_list = [['云南省','昆明市','曲靖市','昭通市','普洱市','楚雄彝族自治州','大理白族自治州','丽江市'],['陕西省','西安市','咸阳市','安康市','宝鸡市','商洛市','汉中市','延安市']];

以下是实现二级联动选框的代码:

<select name='platform1' id='platform1-select-box'><option value='default'></option>
</select>
<select name='platform2' id='platform2-select-box'><option value='default'></option>
</select>
<script>const platform_list = [//idx0:一级选框选项  idx1~n:对应的二级选框选项['云南省','昆明市','曲靖市','昭通市','普洱市','楚雄彝族自治州','大理白族自治州','丽江市'],['陕西省','西安市','咸阳市','安康市','宝鸡市','商洛市','汉中市','延安市']];//生成一级选框选项var platform1SelectElement = document.getElementById('platform1-select-box');var platform2SelectElement = document.getElementById('platform2-select-box')for(var i = 0; i < platform_list.length; i++){a = document.createElement("option");a.value = platform_list[i][0];a.textContent = platform_list[i][0];platform1SelectElement.appendChild(a);}//监听一级选框变化platform1SelectElement.addEventListener('change', function() {//一级选框选中,获取对应的二级选项var platform2_list = [];for(var i = 0; i < platform_list.length; i++){if(platform1SelectElement.value == platform_list[i][0]){platform2_list = platform_list[i].slice(1, platform_list[i].length);console.log(platform2_list);break;}}//删除二级选框已有选项var elements = document.getElementsByName('platform2-option');while(elements.length > 0){elements[0].remove();}//重新生成选项for(var i = 0; i < platform2_list.length; i++){b = document.createElement("option");b.value = platform2_list[i];b.setAttribute('name', 'platform2-option');b.textContent = platform2_list[i];platform2SelectElement.appendChild(b);}});
</script>
http://www.lqws.cn/news/105463.html

相关文章:

  • godwork_ AT 5.2 摄影测量空三数据处理软件。
  • 星敏感器:卫星姿态测量的“星空导航仪”
  • 关系型数据库通过sql语句实现悲观锁与乐观锁
  • Golang 依赖注入:构建松耦合架构的关键技术
  • 原始数据去哪找?分享15个免费官方网站
  • 用AI(Deepseek)做了配色网站-功能介绍【欢迎体验】
  • 力扣HOT100之多维动态规划:1143. 最长公共子序列
  • 52. N 皇后 II【 力扣(LeetCode) 】
  • Leetcode - 周赛 452
  • 动态规划-647.回文子串-力扣(LeetCode)
  • LeetCode 152. 乘积最大子数组 - 动态规划解法详解
  • 代码随想录60期day56
  • Android Kotlin 算法详解:链表相关
  • SpringBoot核心注解详解及3.0与2.0版本深度对比
  • java复习 02
  • 2.3 关于async/await的原理介绍
  • IBM DB2分布式数据库架构
  • Baklib内容中台AI重构智能服务
  • 秋招准备-数据结构
  • Java-IO流之字节输入流详解
  • MFC Resource.h 文件详解与修改指南
  • 网络安全-等级保护(等保)3-0 等级保护测评要求现行技术标准
  • 强制卸载openssl-libs导致系统异常的修复方法
  • C++仿RabbitMQ实现消息队列
  • WINUI——Magewell视频捕捉开发手记
  • RabbitMQ在SpringBoot中的应用
  • Easyui悬停组件
  • 机器学习——放回抽样
  • Vue3中Axios的使用-附完整代码
  • 12、企业应收账款(AR)全流程解析:从发票开具到回款完成