javascript - 如何在 if 语句中使用按钮值和对象值来检查正确答案(进行测验)
问题描述
我无法将 Object 的值与按钮的值进行比较。我会给你完整的代码,这样你就可以理解我做了什么。
let preguntas = [{
Pregunta: "En qué año salió salió Borderlands 2",
Respuestas: [
2012,
2010,
2011,
2013
],
Respuesta: 2012,
}, {
Pregunta: "Cuál de estos Quake va a salir remasterizado",
Respuestas: [
"Quake 1",
"Quake 2",
"Quake 3",
"Quake 4"
],
Respuesta: "Quake 2"
}];
let numeroPregunta = 0;
// Functions that shows question and correct answer
const pasarPregunta = function() { // Funciona sin pasarRespuesta();
let titulo = document.getElementsByClassName("titulo-pregunta");
titulo[0].innerHTML = preguntas[numeroPregunta].Pregunta;
pasarRespuesta();
cambiarValue();
numeroPregunta++;
progressBar();
}
// SHOWS NEXT QUESTION
const pasarRespuesta = function() {
let listaPreguntas = document.getElementsByClassName("lista-preguntas");
for (let i = 0; i < preguntas[numeroPregunta].Respuestas.length; i++) {
listaPreguntas[i].innerHTML = preguntas[numeroPregunta].Respuestas[i];
}
}
// CHANGES VALUES FROM BUTTONS
const cambiarValue = function() {
let value = document.getElementsByClassName("value");
for (let i = 0; i < preguntas[numeroPregunta].Respuestas.length; i++) {
value[i].value = preguntas[numeroPregunta].Respuestas[i];
value[i].onclick = function() {
comprobarRespuestas(value[i].value);
}
}
}
// CHECKS QUESTION AND ANSWER
const comprobarRespuestas = function() {
let opcionSeleccionada = document.querySelector("button[type=submit]");
let respuesta = opcionSeleccionada.value;
if (preguntas[0].Respuesta == respuesta) {
alert("Bien");
} else {
alert("No!")
}
}
<button name="subject" type="submit" value="valor" class="lista-preguntas value"></button>
<button name="subject" type="submit" value="valor" class="lista-preguntas value"></button>
<button name="subject" type="submit" value="valor" class="lista-preguntas value"></button>
<button name="subject" type="submit" value="valor" class="lista-preguntas value"></button>
我不知道如何写“comprobarRespuestas();” 功能。我需要将数组内对象的值与将要更改的按钮的值进行比较,这要归功于 javascript
解决方案
你可以像这个小提琴一样,
const cambiarValue = function() {
let value = document.getElementsByClassName("value");
for (let i = 0; i < preguntas[numeroPregunta].Respuestas.length; i++) {
value[i].value = preguntas[numeroPregunta].Respuestas[i];
value[i].onclick = function(e) {
comprobarRespuestas(e.target.value);
}
}
}
const comprobarRespuestas = function(val) {
//making -1 to get the current index because already increased above function
if (preguntas[numeroPregunta - 1].Respuesta == val) {
alert("Bien");
} else {
alert("No!")
}
}
推荐阅读
- python - 如何根据来自其他两列的值的分组总和创建新的值列?
- javascript - 如何在 Windows 10 上使用 Open 包启动 Edge
- python - 在导入tensorflow的过程中,每次都会出现这个错误。我确实尝试卸载然后再次安装。它仍然给出同样的错误
- html - 在没有最大宽度的情况下右对齐图像
- encryption - 公司如何更改其加密密钥?
- python-3.x - Python:如何获取文件路径的最后 n 个元素
- python - 附加字典数组
- c++ - MinGW 上的 GCC:libcurl 中不支持或禁用协议“https”
- java - POJO 的 ArrayList 未保存在所有设备共享首选项上
- python-3.x - 将 pyspark 数据帧写入雪花表时出错 [snowflake-cloud-data-platform]