If语句对我的javascript和html代码不起作用

yh2wf1be  于 2022-10-30  发布在  Java
关注(0)|答案(3)|浏览(181)

我正在做一个简单的石头剪刀布游戏,所以当你点击按钮时,它会说石头,剪刀布或剪刀。这是可行的,但是,我编码它说“石头已被选中”,当石头被选中。每当石头出现,它永远不会出现。我曾尝试使用一个on click,但那不起作用。我也试过用双等于,但似乎也不起作用。有人知道怎么解决吗?非常感谢。
Home.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Rock paper scissors</title>
<head>
</head>
<body>
    <p id="rand"></p>
    <p id="decider"></p>
    <button type="button" id="randi"> new choice </button>

    <script src="Home.js">

    </script>
</body>
</html>

Home.js:

function getRndInteger(min, max) {
  return Math.floor(Math.random() * (max - min) );
}

const element = document.getElementById("randi");
element.addEventListener("click", Choose, check);

function Choose()  {
return document.getElementById("rand").innerHTML = choix[getRndInteger(0,3)];
}

function check() {
  if (Choose() === 'Rock'); {
    document.getElementById("decider").innerHTML = "rock has been chosen";
  }
}
const choix = ["Rock", "Paper", "Scissors"];
7d7tgy0s

7d7tgy0s1#

addEventListener只能有一个回调函数-https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

function getRndInteger(min, max) {
  return Math.floor(Math.random() * (max - min) );
}

const element = document.getElementById("randi");
element.addEventListener("click", Choose);

function Choose()  {
  const gameElement = choix[getRndInteger(0,3)];

  //output game element
  document.getElementById("rand").innerHTML = gameElement;

  //output message
  const decider = document.getElementById("decider");  
  if (gameElement === 'Rock'){
    decider.innerHTML = "rock has been chosen";
  } else {
    decider.innerHTML = '';
  }
} 

const choix = ["Rock", "Paper", "Scissors"];
2cmtqfgy

2cmtqfgy2#

您的addEventListener似乎也不正确,第三个参数(check)无效。
以下内容可能会给予您想要的结果?

function getRndInteger(min, max) {
    return Math.floor(Math.random() * (max - min) );
}

function choose()  {
    return document.getElementById("rand").innerHTML = choice;
}

function check() {
    if (choose() === 'Rock'); {
        document.getElementById("decider").innerHTML = "rock has been chosen";
    }
}
const choix = ["Rock", "Paper", "Scissors"];

document.getElementById("randi").addEventListener("click", check);
laawzig2

laawzig23#

您将问题和对if-语句的需要过于复杂化了。
对于AI选项的显示,只需从数组中随机选取一个选项,然后用字符串显示该选项。如果将字符串放入backticks,则可以直接在其中包含一个变量并命名该选项。
之后,你需要用switch-语句将选择与玩家选择进行比较!switch-语句所用的时间是if-语句的1.6-2倍。这意味着,只要你需要多于一个if语句,switch语句就会更快
第一个

相关问题