从Java中的if语句执行DOM的问题

时间:2020-05-20 18:07:58

标签: javascript if-statement innerhtml

因此,我尝试运行简单的函数,该函数根据随机生成的数字生成赢家。 到目前为止,还不错,但是当我不仅要返回“优胜者”,而且要返回更改innerHTML时,它不会说“ .innerHTML不是函数”。

**我还尝试过return作为比document.innerHTML更高的回报。 另外,我尝试在var中创建它并返回var,但始终会出现相同的问题。

function runNum() {
  // randomize of number between 1-6
  var a = Math.floor(Math.random() * 6 + 1);
  var b = Math.floor(Math.random() * 6 + 1);
  console.log(a, b);
  if (a > b) {
    document.querySelector(".winnerclick").innerHTML("winner1");
    console.log("a");
  }
  if (b > a) {
    return document.querySelector(".winnerclick").innerHTML("winner2");
    console.log("b");
  }
  if (a === b) {
    document.querySelector(".winnerclick").innerTEXT("Draw - no winner");
  }
}
<h1 class="winnerclick">
  Click on the button to play!
</h1>
<button onclick="runNum()">
Click to start
</button>

我尝试找到答案,但没有任何方法解决此问题。为什么不退货?

2 个答案:

答案 0 :(得分:1)

Pointy是正确的,但我觉得他们的答案可能需要澄清一下。当您想更改.innerHTML的值时,请不要使用.innerHTML(“ new value”);您使用.innerHTML =“新值”;

答案 1 :(得分:1)

实际上,您遇到的错误是正确的,因为innerHTML不是函数,因此您也不能使用括号来调用它。您只需通过为其分配值即可设置其值。

所以您的最终代码应该是这样的:

function runNum() {
  // randomize of number between 1-6
  var a = Math.floor(Math.random() * 6 + 1);
  var b = Math.floor(Math.random() * 6 + 1);
  console.log(a, b);
  if (a > b) {
    document.querySelector(".winnerclick").innerHTML = "winner1";
    console.log("a");
  }
  if (b > a) {
    return document.querySelector(".winnerclick").innerHTML = "winner2";
    console.log("b");
  }
  if (a === b) {
    document.querySelector(".winnerclick").innerTEXT = "Draw - no winner";
  }
}
<h1 class="winnerclick">
  Click on the button to play!
</h1>
<button onclick="runNum()">
Click to start
</button>

相关问题