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

如何通过元素ID获取对应已定义的jQuery变量值?

如何通过元素ID获取对应变量的值?

嘿,这个问题其实很好解决,咱换个思路就能轻松搞定~

首先,你现在是把每个复选框的状态单独存在变量里,这样通过ID匹配变量确实有点麻烦。最靠谱的办法是把这些状态统一存到一个对象里,让ID直接对应对象的属性名,这样就能直接通过ID取值了,具体操作看下面:

第一步:初始化时用对象存储状态

把原来的三个变量改成一个对象的属性,这样变量名和复选框ID完全对应:

// 初始化复选框状态到对象中
const checkboxStates = {
  enabled: $("#enabled").prop("checked") ? '1' : '',
  local: $("#local").prop("checked") ? '1' : '',
  senior: $("#senior").prop("checked") ? '1' : ''
};

第二步:在change事件中通过ID取值

当触发change事件时,拿到元素的ID后,直接用**对象[属性名]**的方式就能获取对应的值了,还能顺便更新对象里的状态(保证下次取值是最新的):

$('input[type="checkbox"]').on('change', function() {
  const triggerId = this.id; // 拿到触发元素的ID,比如"enabled"
  
  // 先更新对象里的对应状态(可选,但建议做,保证数据同步)
  checkboxStates[triggerId] = $(this).prop("checked") ? '1' : '';
  
  // 直接通过ID获取对应的值
  const currentValue = checkboxStates[triggerId];
  console.log(`当前${triggerId}的状态值是:${currentValue}`);
});

其他不推荐的方法(了解即可)

当然还有一些其他方式能实现,但不建议用:

  • 用eval():eval(triggerId)能直接取到变量,但eval会执行任意代码,如果ID是用户可控的,会有安全风险,完全不推荐。
  • 用window全局对象:如果你的变量是全局的,window[triggerId]也能取到,但全局变量容易造成命名污染,项目大了很难维护,也不建议。

所以还是用对象存储的方式最安全、最易维护,完美匹配你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:26:22