javascript - if/else永不返回true?
问题描述:
我需要这样做,而不使用parseInt,但我不知道该怎么做。我试图根据a * b的实际值来检查答案。我认为有什么不对,我实际上无法检索文本框的值。什么是最好的方式来做到这一点?javascript - if/else永不返回true?
var answer = document.getElementById('answer');
var a = Math.floor((Math.random() * 12) + 1);
var b = Math.floor((Math.random() * 12) + 1);
document.getElementById('question').innerHTML = "What is " + a + " times " + b + "?";
function wrongRight() {
if (a * b == answer) {
document.getElementById('response').innerHTML = "Very good.";
} else {
document.getElementById('response').innerHTML = "No, please try again.";
}
}
<p id="response"></p>
<p id="question"></p>
<!-- this is where the x * x = ? will be asked-->
<p> your answer </p>
<input type="text" id="answer">
<input type="button" value="Click" onClick="wrongRight()">
答
是的,正如在评论中提到你要比较一个数字,一个DOM节点。 在您的功能wrongRight
中用+answer.value
代替answer
。 plus将它从一个字符串转换为一个整数。例如
function wrongRight() {
if(a * b == +answer.value) {
document.getElementById('response').innerHTML = "Very good.";
} else{
document.getElementById('response').innerHTML = "No, please try again.";
}
}
'answer'是一个DOM节点,'a'和'b'是数字。 – zzzzBov
也许你错过了什么? 'answer.value' ... – NewToJS
如果你只是做了'console.log(答案)',你会注意到这个问题。 – Barmar