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()">

+2

'answer'是一个DOM节点,'a'和'b'是数字。 – zzzzBov

+0

也许你错过了什么? 'answer.value' ... – NewToJS

+2

如果你只是做了'console.log(答案)',你会注意到这个问题。 – Barmar

是的,正如在评论中提到你要比较一个数字,一个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."; 
    } 
}