按钮点击后数量增加

时间:2015-02-21 16:28:55

标签: jquery button click

我正在尝试进行数学测验。它有10个问题。

生成2个随机数。用户是在文本框中键入答案。单击检查后,弹出窗口将显示正确或错误。

根据正确或错误的答案,分数会增加。

问题编号从问题1/10开始,在问题10/10之后结束。

以下是我的代码:

$(document).ready(function () {

var num1=0;
var num2=0;
var sum=0;
var right=0;
var wrong=0;
var QNUM=1;

function random()
{
    num1 = Math.floor((Math.random() * 10) + 1);
    num2 = Math.floor((Math.random() * 10) + 1);
    $("#number1").html(num1);
    $("#number2").html(num2);
    sum = parseInt(num1) + parseInt(num2);
}

function checking()
{
    $(":button").click(function () {
    var text = $(":text").val();

    if(text == sum)
    {  
        alert("correct");
        right = right+1; 
        $("#correctScore").html(right); 
    }
    else    
    {  
        alert("wrong");
        wrong = wrong+1;
        $("#wrongScore").html(wrong);
    }
    random();
    text = $(":text").val('');
    });    
}


random();
checking();
 }); 

我用这段代码写了我的问号:

$("#question").html("Question " + QNUM + "/10");
QNUM=QNUM+1;

我在哪里可以把它放在我的代码中,所以在用户回答第一个问题之后,QNUM会在10个问题之后增加并停止?

2 个答案:

答案 0 :(得分:0)

似乎您的代码错过了将控制运行random()checking()函数10倍的迭代器。

您可以在此稍后了解其现在和未来 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators

现在,试试:

   while (QNUM < 11) {
    random();
    checking();
  }

并将下面的代码段包含在checkinh()函数中。

$("#question").html("Question " + QNUM + "/10");
 QNUM=QNUM+1;

`

答案 1 :(得分:0)

根据kasper的建议,我去查找.each()并添加到check()的末尾。我将var QNUM视为:

 var QNUM = [1,2,3,4,5,6,7,8,9,10];

这是我添加到checking()

末尾的部分
 jQuery.each(QNUM, function(index, value){
 $("#question").html("Question " + parseInt(value) + "/10");
 });

所以现在我的整个check()看起来像这样。

function checking()
{
    $(":button").click(function () {
    var text = $(":text").val();

    if(text == sum)
    {  
        alert("correct");
        right = right+1; 
        $("#correctScore").html(right); 
    }
    else    
    {  
        alert("wrong");
        wrong = wrong+1;
        $("#wrongScore").html(wrong);
    }
    random();
    jQuery.each(QNUM , function(index, value){
            $("#question").html("Question " + parseInt(value) + "/10");
        });
    text = $(":text").val('');
    });    
}

但QNUM直接从1直到10而没有显示2,3,4,5,6,7,8,9。

如何在检查正确和错误答案后使值显示为1?