从 Javascript 中的 if 语句执行 DOM 的问题
Problem to execute DOM from if statement in Javascript
所以我尝试 运行 简单的函数,根据随机生成的数字生成获胜者。
到目前为止一切顺利,但是当我不仅要 return "winner" 还要 return 更改 innerHTML 时,它不会说“.innerHTML 不是函数”。
**我尝试 return 也作为 return 而不是 document.innerHTML...
另外,我尝试在 var 和 return 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>
我尝试找到答案,但没有解决这个问题。为什么没有 returned?
Pointy 是正确的,但我觉得他们的回答可能需要稍微澄清一下。当你想改变 .innerHTML 的值时,你不使用 .innerHTML("new value");你使用 .innerHTML = "new value";
实际上,您遇到的错误是正确的,因为 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>
所以我尝试 运行 简单的函数,根据随机生成的数字生成获胜者。 到目前为止一切顺利,但是当我不仅要 return "winner" 还要 return 更改 innerHTML 时,它不会说“.innerHTML 不是函数”。
**我尝试 return 也作为 return 而不是 document.innerHTML... 另外,我尝试在 var 和 return 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>
我尝试找到答案,但没有解决这个问题。为什么没有 returned?
Pointy 是正确的,但我觉得他们的回答可能需要稍微澄清一下。当你想改变 .innerHTML 的值时,你不使用 .innerHTML("new value");你使用 .innerHTML = "new value";
实际上,您遇到的错误是正确的,因为 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>