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

JavaScript中如何缩短if语句内的重复DOM操作代码?

如何缩短JavaScript中if语句内的重复代码?

当然可以,你提到的for循环思路完全可行,除此之外还有更简洁的批量处理方式,以下是几种优化方案:

方案1:使用数组存储目标ID + 循环遍历

把需要禁用的按钮ID存入数组,通过遍历数组统一设置禁用状态,代码更简洁且易于维护(后续要调整禁用的按钮只需修改数组即可):

var operators = document.querySelectorAll(".operators button");
var string = screenInput.innerHTML;
var lastCharacter = string[string.length - 1];
console.log(lastCharacter);

if (lastCharacter === "+") {
  const disabledButtonIds = ["subtract-operator", "multiply-operator", "divide-operator"];
  disabledButtonIds.forEach(id => {
    document.getElementById(id).disabled = true;
  });
}

方案2:利用CSS选择器批量获取元素

如果你的按钮结构稳定,可以直接通过querySelectorAll选择除加号按钮外的所有操作符按钮,一次性设置禁用状态:

var operators = document.querySelectorAll(".operators button");
var string = screenInput.innerHTML;
var lastCharacter = string[string.length - 1];
console.log(lastCharacter);

if (lastCharacter === "+") {
  document.querySelectorAll(".operators button:not(#add-operator)").forEach(btn => {
    btn.disabled = true;
  });
}

额外提示

如果后续需要根据其他条件恢复按钮状态,可以先统一重置所有操作符按钮的禁用状态,再执行目标操作,避免状态混乱:

// 重置所有操作符按钮状态
operators.forEach(btn => btn.disabled = false);

if (lastCharacter === "+") {
  // 执行禁用逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:50:26