猿问

当str设置为opt2时,为什么分数会评估分数+1

我有一个函数,可以根据选择的选项来计算调查中的分数,但是我总是得到与第一个if条件相同的值


var questions = [{

        "question": "L'impact est ",

        option1: "faible",

        option2: "moyen",

        option3: "haut",

    },   


var currentQuestion = 0;

var score1 = 0;

var totQuestions = questions.length;

var number = 0;



var progressText = document.getElementById("progressText");

var container = document.getElementById('quizContainer');

var questionEl = document.getElementById('question');

var opt1 = document.getElementById('opt1');

var opt2 = document.getElementById('opt2');

var opt3 = document.getElementById('opt3');

var nextButton = document.getElementById('nextButton');

var resultCont = document.getElementById('result');




function loadQuestion(questionIndex) {

    var q = questions[questionIndex];

    questionEl.textContent = (questionIndex + 1) + '. ' + q.question;

    opt1.textContent = q.option1;

    opt2.textContent = q.option2;

    opt3.textContent = q.option3;

    progressText.innerText = questionIndex + 1 + ' de ' + totQuestions + ' 

questions ';

 };


  function loadNextQuestion() {

    var selectedOption = 

document.querySelector('input[type=radio]:checked');

    if (!selectedOption) {

        alert('veuillez sélectionner votre réponse');

        return;

    }


        var answer =selectedOption.Value;

    

        if (questions[currentQuestion].opt1 == answer) {

            score1 += 1;

        } else if (questions[currentQuestion].opt2 == answer) {

            score1 += 2;

        } else {

             score1 += 3

    }



    selectedOption.checked = false;

    currentQuestion++;

    progressText.textContent = questionEl / totQuestions


    if (currentQuestion == totQuestions - 1) {

        nextButton.textContent = 'Finish';

    }

    if (currentQuestion == totQuestions) {

        container.style.display = 'none';

        resultCont.style.display = '';

        resultCont.textContent = 'le résultat est ' + ' ' + score1 + ' ' 

+answer+' '+ option1 ;

        return;

    }

    loadQuestion(currentQuestion);

};

loadQuestion(currentQuestion);



饮歌长啸
浏览 204回答 1
1回答

慕妹3242003

如果我对您的理解很好,那么您的问题可能是由于以下另一个原因:您不会在<select>元素上触发更改事件。在answer的价值,您可能需要使用.selectedIndex获得的回答值。看看&nbsp;onchange事件,.selectedIndexvar questions = [{&nbsp; opt1: "Answer 1",&nbsp; opt2: "Answer 2",&nbsp; opt3: "Answer 3"}];// score1, currentQuestion variables defined as examplevar currentQuestion = 0;var score1 = 1;var sel = document.getElementById("sel");sel.addEventListener("change", function() {&nbsp; var answer = this.options[this.selectedIndex].value;&nbsp; if (questions[currentQuestion].opt1 == answer) {&nbsp; &nbsp; score1 += 1;&nbsp; } else if (questions[currentQuestion].opt2 == answer) {&nbsp; &nbsp; score1 += 2;&nbsp; } else {&nbsp; &nbsp; score1 += 3;&nbsp; }&nbsp; console.log("score1 = " + score1)});<div id="q"></div><select id="sel">&nbsp; <option value="Answer 1">Answer 1</option>&nbsp; <option value="Answer 2">Answer 2</option>&nbsp; <option value="Answer 3">Answer 3</option></select>
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答