首页 > 解决方案 > 如何在 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

标签: 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!")
    }
}

推荐阅读