首页 > 解决方案 > Javascript函数不会打印

问题描述

我是 JavaScript 新手,我正在为班级做一个项目。到目前为止还没有任何问题,直到这个问题,当我输入输入时没有打印任何内容。当我输入问题时,根本没有任何变化。这个问题只是应该创建一个随机数,看看用户是否猜对了。

<script>
function playGame() {
    var answer;
    var x = Math.floor((Math.random() * 100) + 1);
    var name = document.getElementById('name').value;
    var guess = document.getElementById('guess').value;
    if (x > guess) {
    var answer = "Guess is too low!");
    }
    else if (x < guess) {
    var answer = "Guess is too high!");
    }
    else if (x == guess) {
    var answer = "You guessed correctly!");
    }
    document.getElementById('final').innerHTML = "Answer: " + answer;
</script>

<h2>Random Number Game by </h2>
    <p>Enter Name: 
       <input id="name" type="text">
    </p>
    <p>Enter Guess: <input id="guess" type="number" min="1" max="100" onchange="playGame()"></p>
    <h2 id="final"></h2>

标签: javascripthtmlrandom

解决方案


代码中存在语法错误。)if..else语句中删除尾随的右括号。document.getElementById('final').innerHTML = "Answer: " + answer;应该在函数内。var answer;只需要在脚本开头声明一次。

定义xundefinedplayGame,设置x如果undefined,当x == guess设置xundefined

<script>
  let x;
  function playGame() {
    var answer;
    if (!x) {
      x = Math.floor((Math.random() * 100) + 1)
    };
    var name = document.getElementById('name').value;
    var guess = document.getElementById('guess').value;
    if (x > guess) {
      answer = "Guess is too low!";
    } else if (x < guess) {
      answer = "Guess is too high!";
    } else if (x == guess) {      
       answer = "You guessed correctly!";
       x = void 0;
    }        
    document.getElementById('final').innerHTML = "Answer: " + answer;
  }
  

</script>

<h2>Random Number Game by </h2>
<p>Enter Name:
  <input id="name" type="text">
</p>
<p>Enter Guess: <input id="guess" type="number" min="1" max="100" onchange="playGame()"></p>
<h2 id="final"></h2>


推荐阅读