当前位置: 首页 > 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>

相关文章:

  • 杭州白塔岭画室怎么样?和燕壹画室哪个好?
  • 6.RV1126-OPENCV 形态学基础膨胀及腐蚀
  • Spring Boot整合Druid与Dynamic-Datasource多数据源配置:从错误到完美解决
  • 1. 引言
  • SQL注入漏洞-上篇
  • Qwen2.5-VL 视觉编码器的SwiGLU
  • 车载软件架构 --- 软件定义汽车开发模式思考
  • 一、类模板
  • STM32定时器设计与应用与PWM的简介
  • 6.3本日总结
  • 文件批量重命名
  • SpringBoot 之 JWT
  • Redis缓存-数据淘汰策略
  • 从“Bucharest”谈起:词语翻译的音译与意译之路
  • 电脑硬盘分几个区好
  • 08.MySQL复合查询详解
  • STM32与GD32标准外设库深度对比
  • SoloSpeech - 高质量语音处理模型,一键提取指定说话人音频并提升提取音频清晰度和质量 本地一键整合包下载
  • TypeScript 定义同步方法
  • HarmonyOS图片image使用
  • 包装设计的网站/滨州seo招聘
  • 安徽省建设厅网站怎么进不去/百度推广下载安装
  • 用别人网站名做长尾关键词/tool站长工具
  • 怎么做网站教程 建站视频/电商怎么注册开店
  • 网站模版上线需要什么意思/天津seo排名公司
  • 网站推广是网站建设完成之后的长期工作/网站设计公司多少钱