JS石头剪刀布应用:生成按钮仅生效一次问题求助
石头剪刀布按钮仅首次点击生效的问题解决
问题根源很明确:你把随机生成选项的代码写在了app函数外面,页面加载时就会执行一次,生成两个固定的表情。之后每次点击按钮,只是把这两个固定值重复渲染到页面上,自然不会重新随机。
修改后的JavaScript代码
let options = ['👊', '✋', '✌']; let userBoard = document.getElementById('userBoard'); let computerBoard = document.getElementById('computerBoard'); let app = function () { // 每次点击按钮时重新生成随机选项 let generatedOptions = options[Math.floor(Math.random() * options.length)]; let generatedOptions1 = options[Math.floor(Math.random() * options.length)]; userBoard.innerHTML = generatedOptions; computerBoard.innerHTML = generatedOptions1; }
关键修改点
- 把
generatedOptions和generatedOptions1的定义移到app函数内部,这样每次调用app(也就是点击按钮)时,都会重新执行随机生成逻辑,得到新的选项。 - 保留全局的
options、userBoard和computerBoard,因为这些不需要每次都重新获取或定义。
你的HTML代码没有问题,不需要修改。现在点击按钮就能每次都生成新的随机石头剪刀布选项了。
内容的提问来源于stack exchange,提问作者flokimania123
相关产品推荐
相关产品推荐

