香草JavaScript - 在测验中保持得分

时间:2015-12-13 00:26:32

标签: javascript

我正在尝试编写我的第一个JavaScript程序,这将是一个基本的数学测验,使用针对小孩的随机数字。   我点击按钮时会在HTML页面上显示随机数,但是当我输入答案并尝试使用if / else语句将用户答案与正确答案进行比较时,它没有响应。然后我尝试使用for循环,因为这是我在互联网上看到的很多但无济于事。

以下是我到目前为止编写的代码:

document.getElementById("button1").addEventListener("click", question);

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

function question(){
  var startButton = document.getElementById("button1");
  var number1 = document.getElementById("number1");
  var number2 = document.getElementById("number2");
  var decider = Math.random();

  button1.textContent = "Again";
  number1.textContent = Math.floor(Math.random()*11);
  number2.textContent = Math.floor(Math.random()*11);

  if(decider<0.5){
    plusMinus.textContent = "+"  
  }
  else{plusMinus.textContent = "-"};
  };

document.getElementById("button2").addEventListener("click", answer);

function answer(){
  var num1 = parseInt(document.getElementById("number1").textContent, 10);
  var num2 = parseInt(document.getElementById("number2").textContent, 10);
  var answer = parseInt(document.getElementById("userAnswer").value, 10);
  var feedBack = document.getElementById("feedBack");
  var scoreReport = document.getElementById("score");
  var totalScore = 0;

  if (plusMinus.textContent == "+"){
    if(answer == num1 + num2) {
        feedBack.textContent = "Well Done!";
    } else {
        feedBack.textContent = "Try again!";
    }
  }
  else {
     if(answer == num1 - num2){
        feedBack.textContent = "Well Done!";
     } else {feedBack.textContent = "Try again!"};
  }

  for(count=0; count <=10; count++){
    if(plusMinus == "+" && answer == num1+num2){
        totalScore +1;
    }
    else if(plusMinus == "-" && answer == num1-num2){
        totalScore -1;
    }
  }

  scoreReport.textContent = totalScore;
};

我做了一个Jfiddle:http://jsfiddle.net/way81/r9vdLkzp/1/

感谢您给出的任何建议,感谢您抽出时间阅读我的问题。

3 个答案:

答案 0 :(得分:1)

它似乎确实有效,但我注意到得分并没有增加。那是因为这些方面:

totalScore +1

totalScore -1

我认为这些实际上应该是:

totalScore++;

在成功回答时将玩家的分数提高一个。

除此之外,一切似乎都运转正常。但是,我要提一下,导致负数的减法通常不适合“小孩子”,所以考虑添加一些东西以确保更大的数字始终是第一个操作数。

答案 1 :(得分:1)

我看到你如何设置你的计数器有一些问题。例如,您在答案功能中将totalScore设置为0。你应该把它放在你的答案函数之外,以便程序在上次回答运行时“记住”它。

另一个主要问题是在你的for循环中,你只看plusMinus,而不是plusMinus.textContent。你不需要为此循环。如果你想增加它,让我们说10,你可以在显示反馈时增加分数,如下所示:

access_token

但在每个地方。我用小提琴测试了它,它按预期工作。

答案 2 :(得分:0)

我做了一个小改动,它开始为我工作。

你的按钮,

<button id = "button1">Start!</button>

<button id = "button2">Answer</button>

不包含类型。默认按钮类型是提交。 我把你改成了

<button type='button' id = "button1">Start!</button>

<button type='button' id = "button2">Answer</button>

它开始为我工作