我正在尝试进行数学测验。它有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个问题之后增加并停止?
答案 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?