You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过select下拉框选中项的value值调用对应名称的JS数组

问题原因
  • 你从银行下拉框拿到的a是字符串类型的标识,而非你提前定义的数组变量,直接调用a[b]实际是读取字符串对应索引的字符,自然拿不到预期的数组值
  • 原有代码仅在页面加载时执行一次,后续用户切换下拉选项不会自动更新结果
  • 月份下拉框拿到的value是字符串类型,且数组索引从0开始,直接用拿到的1、2、3取值会出现索引偏移,取不到正确值
可行解决方案

推荐用对象统一映射所有银行的利率数组,同时给下拉框绑定切换事件,实现选项变更自动更新结果,后续新增银行仅需要修改映射配置即可,维护性更高:

// 用对象统一管理银行和对应利率数组的映射关系
const bankRateMap = {
  ACB: ["1%", "2%", "3%"],
  SCB: ["4%", "5%", "6%"]
}
// 提前获取需要操作的DOM元素
const bankSelect = document.querySelector('#bank')
const monthSelect = document.querySelector('#month')
const demoEle = document.querySelector('#demo')

// 封装结果更新逻辑
function updateResult() {
  const selectedBank = bankSelect.value
  // 月份值转数字后减1,匹配数组从0开始的索引规则
  const monthIndex = Number(monthSelect.value) - 1
  // 从映射表中读取对应值
  demoEle.innerHTML = bankRateMap[selectedBank][monthIndex]
}

// 页面加载时初始化结果
updateResult()
// 给两个下拉框绑定切换事件,选项变化时自动更新结果
bankSelect.addEventListener('change', updateResult)
monthSelect.addEventListener('change', updateResult)

如果一定要沿用你原有的全局数组定义,也可以用window[a]拿到对应数组,但这种方式依赖全局变量,容易出现变量冲突,稳定性差,不推荐使用。

内容的提问来源于stack exchange,提问作者nhadatsonnghia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:09:03