无法将值连接到字符串

问题描述 投票:0回答:1

我正在编写简单的石头剪刀布游戏。在这段代码中,我尝试使用 .forEach 方法将单击的 img 的 id 值分配给变量。它就是行不通。 If 语句确实有效,但不知何故字符串没有添加到变量中。

const weapons = document.querySelectorAll("img");
let playerWeapon = "";

weapons.forEach((weapon) => {
  weapon.addEventListener("click", (event) => {
    if (weapon.id == "paper") {
      playerWeapon += "paper";
    } else if (weapon.id == "scissors") {
      playerWeapon += "scissors";
    } else if (weapon.id == "rock") {
      playerWeapon += "rock";
    }
  });
});
console.log(playerWeapon);

我已经用 console.log 替换了串联,以查看它是否返回值并且确实返回了它们。尝试在连接之前添加 return,但没有帮助。

javascript foreach event-handling concatenation string-concatenation
1个回答
0
投票

问题是您立即记录

playerWeapon
的值,这意味着记录的值将是
""
,因为用户在记录值之前没有时间单击任何图像。

也许您可以做的就是添加一个额外的按钮,单击时会记录

playerWeapon

© www.soinside.com 2019 - 2024. All rights reserved.