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

如何仅使用JavaScript获取被点击按钮的value值设置游戏回合上限

问题原因

  • 选择器写法错误:你使用的.game-type buttons是无效选择器,button元素没有复数形式的标签名,正确的选择器应该是.game-type button
  • 没有对获取到的value做类型转换:button的value默认是字符串类型,后续和数字类型的roundCount做比较时最好提前转成数值类型,避免隐式类型转换带来的问题
  • 注意要调用rpsGame函数完成初始化,否则内部的事件绑定逻辑不会执行

修正后的JS代码

const rpsGame = () => {
  let playerScore = 0;
  let computerScore = 0;
  let roundCount = 0;
  let roundLimit = 0;

  //pick number of rounds to play
  const roundNum = () => {
    // 修正选择器
    const roundSelector = document.querySelectorAll(".game-type button");
    roundSelector.forEach(btn => {
      btn.addEventListener("click", function () {
        // 转数字后赋值给roundLimit
        roundLimit = Number(this.value);
        console.log("设定的回合上限:", roundLimit);
        // 这里可以补充你需要的后续逻辑,比如隐藏选择面板、启动游戏流程等
      });
    });
  };
  roundNum();

  // 后续游戏逻辑部分,每次回合结束判断 roundCount === roundLimit 即可触发游戏结束逻辑
}
// 不要忘记调用rpsGame函数完成初始化
rpsGame();

额外优化建议

  • 可以用事件委托代替给每个button单独绑定事件,减少内存占用:直接给父级.game-type绑定点击事件,判断点击目标是button的时候再取值即可,后续新增按钮也不需要重新绑定事件
  • 可以给选中的按钮加高亮样式,提升用户体验
  • 回合上限设定后可以把选择面板隐藏,避免用户中途切换回合数导致逻辑混乱

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 10:54:08