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

能否使用模板字面量拼接变量名调用classList的toggle方法

可行性判断

你提到的直接用模板字面量拼接变量名调用的写法不可行。JavaScript解析器只会把模板字面量识别为字符串,不会自动将字符串作为变量名去查找对应的变量值,直接书写该语法会直接报错。

可落地的实现方式

  • 临时解决方案(仅适用于全局变量场景)
    如果你的bigBoxLeft、bigBoxRight是声明在全局作用域下的变量,可以通过浏览器顶层window对象的属性访问规则实现:
window[`bigBox${player}`].classList.toggle("turnOff");

该方案局限性很强,只要变量不在全局作用域就会失效,不建议常规场景使用。

  • 推荐通用解决方案
    你可以提前将两个DOM实例存入一个对象做映射,后续直接通过player的值读取对应元素即可:
    首先提前定义映射关系:
const bigBoxMap = {
  Left: bigBoxLeft,
  Right: bigBoxRight
}

需要调用toggle方法时直接取值即可:

bigBoxMap[player].classList.toggle("turnOff");

该方案不受作用域限制,后续如果新增其他player取值,只需要在bigBoxMap中新增对应键值对即可,可维护性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:18:00