簡體   English   中英

無法獲得計數器以在Javascript中的函數內部工作

[英]Can't get counter to work inside function in Javascript

我正在嘗試用Javascript創建眾所周知的測驗,這是我的第一個“從頭開始”練習。 這是我的小提琴 ,其中包含所有其他代碼。

這是我的問題:

var allQuestions = [{
    "question": "Who was Luke's gunner in the battle at Hoth?",
    "choices": ["Dak", "Biggs", "Wedge", "fx-7"],
    "correctAnswer": 0
}];

在此功能中,我包括了一個循環,該循環應遍歷單選按鈕與用戶選擇之間的關系。 見下文。

function answerFwd() {
    var answerOutput = " ";
    var itemAnswers = allQuestions;
    var answer = 0;
    var playerTally = 0;
    var playerFeedback = "";
    var playerMessage = document.getElementById("playerMessage");

現在,我堅持這一點; 將數組中的正確答案與用戶將在單選按鈕中選擇的答案進行匹配,然后動態顯示分數。

現在,我可以顯示0,但是沒有增量。

    var radioValue = $("input[type='radio'].radioButtons:checked").val();

    if (currentAnswer <= itemAnswers.length) {
        currentAnswer++;
    }
    createRadioButtonFromArray(itemAnswers[currentQuestion].choices);

    for(i = 0; i < radioValue.length; i++) {
      if(radioValue[i].checked) {
           if(radioValue[i].value == itemAnswers.correctAnswer) {
                playerTally++;
                break;
           }
      }
    }

    playerFeedback += "<h4>" + playerTally + "</h4> <br/>";
    playerMessage.innerHTML = playerFeedback;
}

我不反對使用jQuery解決方案,而是希望使用香草JS替代方案,這樣我才能真正看到發生了什么!

謝謝大家!

在繼續下一個問題之前,您可以找出答案是否正確,方法是

if (document.querySelectorAll("#responses input")[allQuestions[currentQuestion].correctAnswer].checked)

完整的解決方案是

小提琴

var radios = document.querySelectorAll("#responses input");
var correct = allQuestions[currentAnswer].correctAnswer;

if (radios[correct].checked) {
  playerTally++;
  playerFeedback += "<h5>" + playerTally + "</h5> <br/>";
  playerMessage.innerHTML = playerFeedback;
}


if (currentAnswer <= itemAnswers.length) {
    currentAnswer++;
}

現在我仔細地看,這和我先生的一樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM