我正在做一个测验,如果选择了正确或错误的答案,当我单击提交时,我需要一张图像来显示好坏。但是我一直只显示一张图像。
HTML
<div class = "question1">
<p>What is the capital of Nigeria?</p>
<input type = "text" id = "question_one">
<div id = "goodorbad"></div>
</div>
<div class = "question2">
<p>Which of these is the symbol for 'plus'?</p>
<select id = "operators">
<option value = "x">x</option>
<option value = "-">-</option>
<option value = "+">+</option>
<option value = "%">%</option>
</select>
<div id = "goodorbad"></div>
</div>
JAVASCRIPT
function getResult() {
let answer_one = document.getElementById("question_one").value;
let answer_two = document.getElementById("operators").value;
let correct_ans = 0;
if (answer_one === "abuja") {
correct_ans++;
}
if (answer_two === "+") {
correct_ans++;
}
let sign_symbol = ["bad1.png" , "good1.png"];
let sign;
if (correct_ans === true){
sign = 1;
}
else{
sign = 0;
}
document.getElementById("goodorbad").src = sign_symbol[sign];
如果答案正确,则应在右上角显示good1.png图像;如果答案不正确,则应显示bad1.png图像
答案 0 :(得分:2)
您在src
上使用div
属性,而不是无效的img
标签。另外,对通用元素使用通用类,例如question-img
,在这种情况下,请使用img标签,而不要对多个元素使用相同的id,这是一个不好的做法。
<div class = "question1">
<p>What is the capital of Nigeria?</p>
<input type = "text" id = "question_one">
<img class="question-img" src=""/>
</div>
并使用document.querySelector
来将src
分配给img
元素
document.querySelector("#question1 .question-img").src = sign_symbol[sign];
另外,由于您要比较的是布尔值,因此您的if (correct_ans === true)
语句总是错误的。
希望这会有所帮助!
答案 1 :(得分:1)
您的代码存在多个错误。
src
分配给div
,但应将其分配给img
。correct_ans === true
)的结果始终为假。因为三个等号会同时比较值和类型,而数字类型永远不会等于布尔型。goodorbad
的ID,并且使用ID选择器,仅选择了第一个匹配项。答案 2 :(得分:0)
您不能有多个具有相同ID的HTML元素,它们必须是唯一的。
如果要同时选择多个元素,则应使用classes和/或数据属性。