亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單擊時數字不增加

單擊時數字不增加

慕斯709654 2023-09-07 18:26:50
我有一個簡單的多問題測驗,當選擇正確或不正確的答案時,它會顯示某些文本。現在我正在嘗試添加增量分數,但沒有成功。我添加了一個警報,無論答案正確還是錯誤都會觸發警報,但分數不會增加。我的代碼中缺少什么?完整的代碼如下。為了簡單起見,只包含一個問題。function questionMarkers() {  let labels = document.querySelectorAll(    "div[class*='rsform-block-question'] .formControlLabel"  );  let count = labels.length;  for (let i = 0; i < count; i++) {    let marker = `<span class="question-marker">${i + 1}</span>`;    labels[i].insertAdjacentHTML("beforebegin", marker);  }}const runQuiz = (() => {  questionMarkers();  let score = 0;  let answers = document.querySelectorAll(".rsform-radio");  answers.forEach(function(answer) {    answer.addEventListener("click", (e) => {      let target = e.target;      let container = target.closest(".formContainer");      let correct = container.querySelector("div[class$='true']");      let wrong = container.querySelector("div[class$='false']");      let feedback = container.querySelector("div[class$='feedback']");      let question = container.querySelector(        "div[class*='rsform-block-question']"      );      let next = container.querySelector(".js-btn--next.success");      let submit = container.querySelector(        ".js-btn--submit.rsform-submit-button"      );      if (e.target.value == "t") {        correct.style.display = "block";        wrong.style.display = "none";        feedback.style.display = "block";        alert("Correct!");        score++;      } else {        correct.style.display = "none";        wrong.style.display = "block";        feedback.style.display = "block";        alert("Incorrect");      }      question.style.display = "none";    });    document.getElementById("score").innerText = score;  });})();
查看完整描述

2 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

沒有什么問題score。調整時必須更新它score。


function questionMarkers() {

  let labels = document.querySelectorAll(

    "div[class*='rsform-block-question'] .formControlLabel"

  );

  let count = labels.length;

  for (let i = 0; i < count; i++) {

    let marker = `<span class="question-marker">${i + 1}</span>`;

    labels[i].insertAdjacentHTML("beforebegin", marker);

  }

}


const runQuiz = (() => {

  questionMarkers();

  let score = 0;

  let answers = document.querySelectorAll(".rsform-radio");

  answers.forEach(function(answer) {

    answer.addEventListener("click", (e) => {

      let target = e.target;

      let container = target.closest(".formContainer");

      let correct = container.querySelector("div[class$='true']");

      let wrong = container.querySelector("div[class$='false']");

      let feedback = container.querySelector("div[class$='feedback']");

      let question = container.querySelector(

        "div[class*='rsform-block-question']"

      );

      let next = container.querySelector(".js-btn--next.success");

      let submit = container.querySelector(

        ".js-btn--submit.rsform-submit-button"

      );


      if (e.target.value == "t") {

        correct.style.display = "block";

        wrong.style.display = "none";

        feedback.style.display = "block";

        alert("Correct!");

        score++;

        document.getElementById("score").innerText = score;

      } else {

        correct.style.display = "none";

        wrong.style.display = "block";

        feedback.style.display = "block";

        document.getElementById("score").innerText = score;

        alert("Incorrect");

      }

      question.style.display = "none";

    });

    document.getElementById("score").innerText = score;

  });

})();

<fieldset class="formContainer" id="rsform_53_page_0">

  <div class="row">

    <div class="medium-12 columns">

      <div class="row rsform-block rsform-block-question-one">

        <div class="medium-3 columns">

          <span class="question-marker">1</span><label class="formControlLabel" data-tooltip="" aria-haspopup="true" data-disable-hover="false" tabindex="1" title="">Why do skunks spray?</label>

        </div>

        <div class="medium-9 columns formControls">

          <input type="radio" name="form[question-one]" value="f" id="question-one0" class="rsform-radio"><label for="question-one0">To attract a mate</label><br><input type="radio" name="form[question-one]" value="t" id="question-one1" class="rsform-radio">

          <label for="question-one1">To defend themselves against predators</label><br><input type="radio" name="form[question-one]" value="f" id="question-one2" class="rsform-radio"><label for="question-one2">To mark their territory</label><br>

          <input type="radio" name="form[question-one]" value="f" id="question-one3" class="rsform-radio"><label for="question-one3">Because they like the smell</label>

          <span class="formValidation"><span id="component878" class="formNoError"></span></span>

        </div>

      </div>

      <div class="row rsform-block rsform-block-question-one-true" style="display: none;">

        <p><strong>Correct!</strong></p>

      </div>

      <div class="row rsform-block rsform-block-question-one-false" style="display: none;">

        <p><strong>Nice try</strong></p>

      </div>

      <div class="row rsform-block rsform-block-question-one-feedback" style="display: none;">

        <p>Skunks spray an extremely offensive odour to make predators go away and leave them alone. If they feel their life is in danger, they have no other defence as they cannot run fast, climb, burrow under the ground, or fight.</p>

      </div>

    </div>

  </div>

  <p id="score"></p>

</fieldset>


查看完整回答
反對 回復 2023-09-07
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

您的document.getElementById("score").innerText = score;陳述位于EventListener您提高分數的 之外。所以你需要把它放在你的括號內EventListener。



查看完整回答
反對 回復 2023-09-07
  • 2 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號