Javascript Jquery测验-不会调用最后一个if
在遍历所有数组之后,为什么不调用最后一个Javascript Jquery测验-不会调用最后一个if,javascript,jquery,Javascript,Jquery,在遍历所有数组之后,为什么不调用最后一个if //array biblioteket var startArray = [ { "s1": "Hvor høj er Rundetårnet? ", "svar": "34" }, { "s1": "hvor gammel er Thomas", "svar": "27" } ] var qu = 0; var score = 0; //subm
if
//array biblioteket
var startArray = [
{
"s1": "Hvor høj er Rundetårnet? ",
"svar": "34"
},
{
"s1": "hvor gammel er Thomas",
"svar": "27"
}
]
var qu = 0;
var score = 0;
//submit knapper kalder funktion info
$("#form").submit(quiz);
$("#question").html(startArray[qu].s1 + "<br/><br/>");
function quiz() {
var answer = $("#answer").val();
if (answer == startArray[qu].svar) {
score++
$("#comment").html("<h2>" + "Flot arbejde! <br/> <br/>" + "Din Score er: " + score + "</h2>");
qu++
$("#question").html(startArray[qu].s1 + "<br/><br/>");
} else {
$("#comment").html("<h2>" + "prøv igen <br/> <br/> " + "</h2>");
}
if (qu == 2) {
$("#question").hide();
$("#form").hide();
$("#comment").html("Tillykke du er færdig. <br/> <br/>" + "Din Score er: " + score);
}
event.preventDefault();
$("#answer").val('');
}
//数组biblioteket
var startArray=[
{
“s1”:“Hvor høj er Rundetårnet?”,
“svar”:“34”
},
{
“s1”:“hvor gammel er Thomas”,
“svar”:“27”
}
]
var-qu=0;
var得分=0;
//提交knapper kalder funktion信息
$(“#表格”)。提交(测验);
$(“#问题”).html(startArray[qu].s1+”
);
函数测验(){
var answer=$(“#answer”).val();
如果(答案==startArray[qu].svar){
得分++
$(“#comment”).html(“+”Flot arbejde!
“+”Din Score er:“+Score+”);
瞿++
$(“#问题”).html(startArray[qu].s1+”
);
}否则{
$(“#comment”).html(“+”prøv igen
“+”);
}
如果(qu==2){
$(“#问题”).hide();
$(“#形式”).hide();
$(“#comment”).html(“Tillykke du er færdig.
“+”Din Score er:“+Score”);
}
event.preventDefault();
$(“#答案”).val(“”);
}
将函数测验()
更改为函数测验(事件)
以便在方法中引用事件
否则,event.preventDefault()代码>不起作用。。(由于事件
未定义,因此会导致错误)
在展示之前,你还需要检查是否还有下一个问题
所以
qu++;
if(星光[qu]){
$(“#问题”).html(startArray[qu].s1+”
);
}
演示所有更改在放置;在qu++和score++之后,否则qu将不会增加
您还在$(“#question”).html(startArray[qu].s1+“
”)中使用递增的qu值代码>第二个问题将是startArray[2]。s1,但第二个问题将是startArray[1]。s1。
因此,将其更改为:
$("#question").html(startArray[qu-1].s1 + "<br/><br/>");
$(“#问题”).html(startArray[qu-1].s1+”
);
你可以走了。qu
只有在answer==startArray[qu]时才会递增。svar
你检查过它递增到什么值了吗?如果条件从来都不是真的,qu
将始终为0或者qu
不是2,或者在代码完成之前您是一个异常。它对我有效:(然后当然在不应该的地方提交)它必须运行:$(“#comment”).html(“Tillykke du er færdig.
“+”Din Score:“+Score”);在运行数组[0]和[1]之后,这是如何解决他的问题的?@BotskoNet会阻止表单提交,这可能会让op认为它永远不会达到2。当我问你一个问题时,你对preventDefault
一无所知,你只是做了函数测试(事件)
什么都没有else@BotskoNet由于你的评论,我扩大了我的问题,这表明它不清楚。我有这个事件吗。防止。。。在正确的地方?因为这没有任何区别……我用qu++和score++得到了这一点!:)谢谢在完成所有数组之后,将不会是最后一个。。如果我将i改为qu-1,它将反复运行相同的数组..或者您可以交换qu++和$(“#问题”),而无需使用qu-1。这里是另一个正在工作的JSFIDLE:是的,它正在做我想做的事情。。。但是问题没有改变?你问题的答案是因为当qu=2;星光[qu]未定义。因此会抛出错误并停止代码执行。所以它不会进入最后一个if块。
$("#question").html(startArray[qu-1].s1 + "<br/><br/>");