【发布时间】:2022-01-10 21:13:38
【问题描述】:
大家好:)我正在尝试写石头、剪子布游戏,但我遇到了一个小问题。是否有任何选项可以像我在这段代码中所做的那样将 let playerChoice = buttons.forEach... 分配给任何变量?不幸的是,它不是这样工作的。我在下面附上了我的代码。
感谢您的任何提示!
let choiceOptions = ["ROCK", "PAPER", "SCISSORS"];
let buttons = document.querySelectorAll('button');
let computerChoice = () => choiceOptions[Math.floor(Math.random() * choiceOptions.length)];
let playerChoice = buttons.forEach(button => {
button.addEventListener('click', () => {
return button.id.toUpperCase();
});
});
console.log(playerChoice) //does not work
【问题讨论】:
-
不,这是不可能的。点击是异步的。您点了一份比萨饼,并且您一下单就想吃它。当他们单击时,您将不得不调用一个函数。
button.addEventListener('click', () => { theyClicked(button.id.toUpperCase()) });并在该函数中执行您需要执行的操作。 -
您现在不能拥有用户在未来某个时间点击某物所产生的某些价值。
-
谢谢!感谢您的帮助。
-
JS 是基于事件的;以下是解决方法:jsfiddle.net/by2f4cn9
标签: javascript variables foreach scope