我之前知道这是一个话题,但经过搜索后我无法找到答案 - 也许我的问题太基础了。但是,我正在创建一个html测验 - 5个页面,分数从一个页面到下一个页面,然后在最后得分。
这是我尝试使用的代码,但它根本不起作用 - 我的JS知识非常基础,所以如果有人能解释这是如何工作的,那将非常感激。
var answers = "0";
function answerTotals() {
if (document.getElementById("1A").checked = true) answers++;
else(console.log("answer was incorrect"));
}
function showScore() {
document.getElementById("Score").innerHTML = "You Got " + answers + "/6";
console.log("Score is displayed.");
}

<div id="questions1">
<h1>Question 1.</h1>
<br>Why are there data types in JavaScript?
<br>
<br>
<input type="radio" name="q1" value="A" id="1A" onchange="question1()">As it helps a computer differentiate between different data.
<br>
<input type="radio" name="q1" value="B" id="1B" onchange="question1Wrong1()">There aren't.
<br>
<input type="radio" name="q1" value="C" id="1C" onchange="question1Wrong2()">To help it interact with Java.
<br>
<input type="radio" name="q1" value="D" id="1D" onchange="question1Wrong3()">To allow it to complete a task.
<br>
<input type="button" value="Next" onclick="nextQuestion();answerTotals()">
<br>
<br>
<p onclick="hint1()">
</div>
&#13;
答案 0 :(得分:1)
我注意到你的第一个片段:
var answers = "0";
function answerTotals() {
if (document.getElementById("1A").checked = true) answers++;
else(console.log("answer was incorrect"));
}
这里,在if条件中,你使用了一个等于。所以,在这里,它设置变量document.getElementById(“1A”)的值。检查到布尔值'true'。
你想这样做:
if ( document.getElementById("1A").checked == true )
或只是
if ( document.getElementById("1A").checked )
此外,您显示的else条件使用弯曲括号。虽然这个具体的例子适用于
else(console.log("answer was incorrect"));
这是不正确的,以后会引起混淆。正确的方法是:
else console.log("answer was incorrect");
或
else { console.log("answer was incorrect"); }