javascript - 计数器根据定义的逻辑递增

标签 javascript jquery

我遇到一个问题,即使该语句的计算结果应该为 false,但我的计数器变量仍在递增。

即使 else if 递增 wrongAnswers 变量, CorrectAnswers 变量也会继续递增。 unanswered 变量似乎也双倍递增,就好像该语句触发了两次一样。我似乎无法确定问题发生在哪里。

$("#quiz").on("click", function() {
  if ($("input[name=question-1]:checked").val() === "correct") {
    correctAnswers++;
    unanswered--;
  } else if ($("input[name=question-1]:checked").val() === "wrong") {
    wrongAnwers++;
    unanswered--;
  }

  if ($("input[name=question-2]:checked").val() === "correct") {
    correctAnswers++;
    unanswered--;
  } else if ($("input[name=question-2]:checked").val() === "wrong") {
    wrongAnwers++;
    unanswered--;
  }

  console.log("correct " + correctAnswers);
  console.log("wrong " + wrongAnwers);
  console.log("unanswered " + unanswered);
});

最佳答案

我用所有可能的真/假组合遍历了逻辑。除了您没有将未回答的问题算作错误答案之外,没有任何变量出现无法解释的增量。我将 Console.log 记录每个变量的初始值(在 if 语句之前),并在每个 if 语句之间再次记录。

另一件事是确保您使用的是单选按钮而不是复选框。

fiddle : https://jsfiddle.net/TimothyKanski/y4upr5j8/

如果您想将未回答的问题计为错误,请添加 Else:

  if (a) {
      correctAnswers++;
      unanswered--;
    } else if (b) {
      wrongAnwers++;
      unanswered--;
    }
    else{
      wrongAnwers++;
    }

关于javascript - 计数器根据定义的逻辑递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43010503/

相关文章:

php - CodeIgniter 无法从 Controller 获取回显数据到 Ajax

javascript - 处理 jQuery(document).ready 中的错误

javascript - 阻止更新 : react router and redux

javascript - 如何使用javascript在单击图像时获取音频,并在播放两个或多个图像时暂停,其中一个图像必须在其他图像正在播放时暂停

javascript - jQuery 代码在选项卡中不起作用

javascript - 带有元素作为变量的 JQuery parentsUntil 未按预期工作

javascript - 找出html block 中最宽字的宽度

javascript - 将导入的函数与 eval 一起使用

javascript - 复选框不会在视觉上取消选中

javascript - 递归重命名对象键