Javascript-如何将事件侦听器中的元素值与数组元素进行比较?
再一次,我需要您对我现在遇到的问题提供意见。Javascript-如何将事件侦听器中的元素值与数组元素进行比较?,javascript,html,addeventlistener,Javascript,Html,Addeventlistener,再一次,我需要您对我现在遇到的问题提供意见。 我正在创建一个MCQ琐事,在这里我遇到了一个逻辑问题 虽然在本例中,我特意将答案设置为B、C或D,但结果div将始终显示结果是正确的–尽管我只在按钮A上设置了一个事件侦听器,但没有答案 根据下面的代码,我是否正确地比较了元素值和数组答案值 var检查=[{ “问题”:“Q1?”, “期权”:[“A”、“B”、“C”、“D”], 回答:“B” },{ “问题”:“Q2?”, “期权”:[“A”、“B”、“C”、“D”], “答复”:“C” },{ “
我正在创建一个MCQ琐事,在这里我遇到了一个逻辑问题 虽然在本例中,我特意将答案设置为B、C或D,但结果
div
将始终显示结果是正确的–尽管我只在按钮A上设置了一个事件侦听器,但没有答案
根据下面的代码,我是否正确地比较了元素值和数组答案值
var检查=[{
“问题”:“Q1?”,
“期权”:[“A”、“B”、“C”、“D”],
回答:“B”
},{
“问题”:“Q2?”,
“期权”:[“A”、“B”、“C”、“D”],
“答复”:“C”
},{
“问题”:“第三季度?”,
“期权”:[“A”、“B”、“C”、“D”],
“答复”:“D”
},{
“问题”:“第四季度?”,
“期权”:[“A”、“B”、“C”、“D”],
回答:“B”
},{
“问题”:“问题5?”,
“期权”:[“A”、“B”、“C”、“D”],
“答复”:“C”
}]
//dom选择器
var container=document.getElementById('container');
var questionEl=document.getElementById('question');
//用于显示答案
var opt1=document.getElementById('opt1');
var opt2=document.getElementById('opt2');
var opt3=document.getElementById('opt3');
var opt4=document.getElementById('opt4');
//对于输入按钮,单击
var opta=document.getElementById('opta');
var optb=document.getElementById('optb');
var optc=document.getElementById('optc');
var optd=document.getElementById('optd');
//
var button=document.querySelectorAll('button');
var nextButton=document.getElementById('help1Button');
var resultCont=document.getElementById('result');
//显示问答
函数displayQues(){
//从测验数组中随机选择一个问题
var i=Math.floor(Math.random()*exam.length);
questionEl.textContent=考试[i]。问题;
opt1.textContent=exam[i]。选项[0];
opt2.textContent=exam[i]。选项[1];
opt3.textContent=exam[i]。选项[2];
opt4.textContent=exam[i]。选项[3];
};
//当页面加载时加载此文件
displayQues();
opta.addEventListener(“单击”,函数(){
if(opt1.value==检查答案){
displayQues();
resultCont.textContent=“正确!”;
}否则{
resultCont.textContent=“不正确!”;
}
});代码>
高志伟试题
A:
B:
C:
D:
当前代码的问题是opt1.value==exam.answer
。这两个属性都未定义opt1.value
因为它没有设置(我相信您想要opt1.textContent
)和exam.answer
因为exam
是一个数组。你说得对!始终因为undefined===undefined
是true
您的问题可以通过返回当前显示的问题并将其用于比较来解决
var检查=[{
“问题”:“Q1?”,
“期权”:[“A”、“B”、“C”、“D”],
回答:“B”
}, {
“问题”:“Q2?”,
“期权”:[“A”、“B”、“C”、“D”],
“答复”:“C”
}, {
“问题”:“第三季度?”,
“期权”:[“A”、“B”、“C”、“D”],
“答复”:“D”
}, {
“问题”:“第四季度?”,
“期权”:[“A”、“B”、“C”、“D”],
回答:“B”
}, {
“问题”:“问题5?”,
“期权”:[“A”、“B”、“C”、“D”],
“答复”:“C”
}]
//
//dom选择器
var container=document.getElementById('container');
var questionEl=document.getElementById('question');
//用于显示答案
var opt1=document.getElementById('opt1');
var opt2=document.getElementById('opt2');
var opt3=document.getElementById('opt3');
var opt4=document.getElementById('opt4');
//对于输入按钮,单击
var opta=document.getElementById('opta');
var optb=document.getElementById('optb');
var optc=document.getElementById('optc');
var optd=document.getElementById('optd');
//
var button=document.querySelectorAll('button');
//
var nextButton=document.getElementById('help1Button');
var resultCont=document.getElementById('result');
//显示问答
函数displayQues(){
//从测验数组中随机选择一个问题
var i=Math.floor(Math.random()*exam.length);
questionEl.textContent=考试[i]。问题;
opt1.textContent=exam[i]。选项[0];
opt2.textContent=exam[i]。选项[1];
opt3.textContent=exam[i]。选项[2];
opt4.textContent=exam[i]。选项[3];
返回检查[i];//返回所选的检查变量
};
//当页面加载时加载此文件
var currentExam=displayQues();//存储所选的考试
opta.addEventListener(“单击”,函数(){
if(opt1.textContent==currentExam.answer){
currentExam=displayQues();//存储新问题
resultCont.textContent=“正确!”;
}否则{
resultCont.textContent=“不正确!”;
}
});代码>
高志伟试题
A:
B:
C:
D:
当前代码的问题是opt1.value==exam.answer
。这两个属性都未定义opt1.value
因为它没有设置(我相信您想要opt1.textContent
)和exam.answer
因为exam
是一个数组。你说得对!始终因为undefined===undefined
是true
您的问题可以通过返回当前显示的问题并将其用于比较来解决
var检查=[{
“问题”:“Q1?”,
“期权”:[“A”、“B”、“C”、“D”],
回答:“B”
}, {
“问题”:“Q2?”,
“期权”:[“A”、“B”、“C”、“D”],
“答复”:“C”
}, {
“问题”:“第三季度?”,
“期权”:[“A”、“B”、“C”、“D”],
“答复”:“D”
}, {
“问题”:“第四季度?”,
“期权”:[“A”、“B”、“C”、“D”],
回答:“B”
}, {
“问题”:“问题5?”,
“期权”:[“A”、“B”、“C”、“D”],
“答复”:“C”
}]
//
//dom选择器
var container=document.getElementById('container');
var questionEl=document.getElementById('question');
//用于显示答案
var opt1=document.getElementById('opt1');
var opt2=document.getElementById('opt2');
var opt3=document.getElementById('opt3');
var opt4=document.getElementById('opt4');