使用 html 和 js 重新启动按钮

Restart button using html & js

如何在这个游戏上添加一个重新启动按钮,以便用户每次单击该按钮时都会重新启动游戏。尝试了几种方法来做到这一点,但我觉得我很笨哈哈,就是想不通。 有人知道怎么做吗?

如何在这个游戏上添加一个重新启动按钮,以便用户每次单击该按钮时都会重新启动游戏。尝试了几种方法来做到这一点,但我觉得我很笨哈哈,就是想不通。 有人知道怎么做吗?

html    
----------
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Rock Paper Scissors Tutorial</title>
  </head>
  <body>

    <h2>Computer Choice: <span id="computer-choice"></span></h2>
    <h2>Your Choice: <span id="user-choice"></span></h2>
    <h2>Result: <span id="result"></span></h2>

    <button id="rock">rock</button>
    <button id="paper">paper</button>
    <button id="scissors">scissors</button>
    <div class="restart">Re-Start</div>

    <script src="app.js" charset="utf-8"></script>
  </body>
</html>
--------
js file
---------
const computerChoiceDisplay = document.getElementById('computer-choice')
const userChoiceDisplay = document.getElementById('user-choice')
const resultDisplay = document.getElementById('result')
const possibleChoices = document.querySelectorAll('button')
let userChoice
let computerChoice
let result

possibleChoices.forEach(possibleChoice => possibleChoice.addEventListener('click', (e) => {
  userChoice = e.target.id
  userChoiceDisplay.innerHTML = userChoice
  generateComputerChoice()
  getResult()
}))

function generateComputerChoice() {
  const randomNumber = Math.floor(Math.random() * 3) + 1 // or you can use possibleChoices.length
  
  if (randomNumber === 1) {
    computerChoice = 'rock'
  }
  if (randomNumber === 2) {
    computerChoice = 'scissors'
  }
  if (randomNumber === 3) {
    computerChoice = 'paper'
  }
  computerChoiceDisplay.innerHTML = computerChoice
}

function getResult() {
  if (computerChoice === userChoice) {
    result = 'its a draw!'
  }
  if (computerChoice === 'rock' && userChoice === "paper") {
    result = 'you win!'
  }
  if (computerChoice === 'rock' && userChoice === "scissors") {
    result = 'you lost!'
  }
  if (computerChoice === 'paper' && userChoice === "scissors") {
    result = 'you win!'
  }
  if (computerChoice === 'paper' && userChoice === "rock") {
    result = 'you lose!'
  }
  if (computerChoice === 'scissors' && userChoice === "rock") {
    result = 'you win!'
  }
  if (computerChoice === 'scissors' && userChoice === "paper") {
    result = 'you lose!'
  }
  resultDisplay.innerHTML = result
}

document.getElementById("reset").onclick = function() {
  document.getElementById("number").innerHTML = "";
};

我尽可能少地编辑了您的代码:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Rock Paper Scissors Tutorial</title>
  </head>
  <body>

    <h2>Computer Choice: <span id="computer-choice"></span></h2>
    <h2>Your Choice: <span id="user-choice"></span></h2>
    <h2>Result: <span id="result"></span></h2>

    <button id="rock">rock</button>
    <button id="paper">paper</button>
    <button id="scissors">scissors</button>
    <div class="restart" id="reset">Re-Start</div>

    
    
    <script>
    const computerChoiceDisplay = document.getElementById('computer-choice')
const userChoiceDisplay = document.getElementById('user-choice')
const resultDisplay = document.getElementById('result')
const possibleChoices = document.querySelectorAll('button')
let userChoice
let computerChoice
let result

possibleChoices.forEach(possibleChoice => possibleChoice.addEventListener('click', (e) => {
  userChoice = e.target.id
  userChoiceDisplay.innerHTML = userChoice
  generateComputerChoice()
  getResult()
}))

function generateComputerChoice() {
  const randomNumber = Math.floor(Math.random() * 3) + 1 // or you can use possibleChoices.length
  
  if (randomNumber === 1) {
    computerChoice = 'rock'
  }
  if (randomNumber === 2) {
    computerChoice = 'scissors'
  }
  if (randomNumber === 3) {
    computerChoice = 'paper'
  }
  computerChoiceDisplay.innerHTML = computerChoice
}

function getResult() {
  if (computerChoice === userChoice) {
    result = 'its a draw!'
  }
  if (computerChoice === 'rock' && userChoice === "paper") {
    result = 'you win!'
  }
  if (computerChoice === 'rock' && userChoice === "scissors") {
    result = 'you lost!'
  }
  if (computerChoice === 'paper' && userChoice === "scissors") {
    result = 'you win!'
  }
  if (computerChoice === 'paper' && userChoice === "rock") {
    result = 'you lose!'
  }
  if (computerChoice === 'scissors' && userChoice === "rock") {
    result = 'you win!'
  }
  if (computerChoice === 'scissors' && userChoice === "paper") {
    result = 'you lose!'
  }
  resultDisplay.innerHTML = result
}

document.getElementById("reset").onclick = function() {
  document.getElementById("computer-choice").innerHTML = "";
  document.getElementById("user-choice").innerHTML = "";
  document.getElementById("result").innerHTML = "";
  };
  </script>
    
  </body>
</html>

所以基本上,如果你想点击文本“Re-Start”并让它“重置游戏”,你必须删除三个地方的文本:计算机的选择,你的选择,以及结果。

您为其编写的函数不会改变任何这些。相反,它会查找 ID 为“number”的 DOM 元素,而该元素似乎根本不存在。

您要更改的 DOM 个元素的 ID 为“computer-choice”、“user-choice”和“result”。

此外,您正在尝试将针对重置功能的点击事件添加到 ID 为“重置”的元素。但它不存在。您可以通过将该 ID 添加到您似乎愿意在这种情况下使用的文本来更改它:

<div class="restart">Re-Start</div>

而不是

<div class="restart" id="reset">Re-Start</div>

如果你想有一个“重启按钮”,那么你可以用文本“Re-Start”编辑 div 来添加一个 class从视觉上来说是一个按钮,或者只使用