我正在编写简单的石头剪刀布游戏。在这段代码中,我尝试使用 .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,但没有帮助。
问题是您立即记录
playerWeapon
的值,这意味着记录的值将是""
,因为用户在记录值之前没有时间单击任何图像。
也许您可以做的就是添加一个额外的按钮,单击时会记录
playerWeapon
。