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

如何在test_data函数中获取Select框的选中值?

如何在独立函数中获取监听的Select选中值?

看起来你已经搞定了下拉框的change事件监听,现在想在test_data()里拿到选中值对吧?这里有几种实用的方案,你可以根据自己的场景选:

方案1:用全局变量存储选中值

这是最简单的方式,把选中值存在全局作用域里,这样test_data()随时都能访问到:

// 声明全局变量来存选中值
let selectedTestValue;

$(document).on('change','.test',function(){ 
  selectedTestValue = $('option:selected',this).val();
  alert(selectedTestValue); 
});

function test_data() { 
  // 直接用全局变量就行
  console.log(selectedTestValue);
  // 这里写你要处理的逻辑
}

⚠️ 小提醒:全局变量虽然方便,但如果项目里代码多了,可能会和其他变量冲突,所以小型项目用用没问题,大型项目尽量谨慎点。

方案2:在函数里主动获取实时选中值

这种方法更稳妥,不需要依赖外部变量,每次调用test_data()时直接查询下拉框的当前状态:

$(document).on('change','.test',function(){ 
  const val = $('option:selected',this).val();
  alert(val); 
});

function test_data() { 
  // 两种写法都可以,第二种更简洁
  // const selectedVal = $('.test option:selected').val();
  const selectedVal = $('.test').val(); // jQuery的val()对select直接返回选中值
  console.log(selectedVal);
}

如果页面上有多个.test类的下拉框,$('.test').val()会返回第一个匹配的选中值,要是需要处理多个的话,可以用.each()遍历每个下拉框获取各自的值。

方案3:在change事件中直接传值给函数

如果你的test_data()需要在下拉框变化时立即执行,那可以直接在change事件里调用函数并把选中值传进去:

$(document).on('change','.test',function(){ 
  const val = $('option:selected',this).val();
  alert(val);
  // 触发change时直接调用函数并传值
  test_data(val);
});

function test_data(selectedVal) { 
  // 直接使用传入的参数
  console.log(selectedVal);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:46:48