此帖已于几小时前更新过上一篇文章...
我正在尝试为RPG网站进行多项选择测试。 他们有14个问题,每个问题有8个答案。
8个答案中的每一个对应于一组8个变量中的1个,在提交单击单选按钮的用户时,最终将点添加到适当的变量。
此时进行比较以吐出正确的结果。
我之前遇到的问题已经解决,因此已被删除,但我不想在同一主题上开始一个新线程。
当前问题:
我拼凑了这段代码:(完整的代码将在下面)
// Go through all questions and add +1 for each checked
// input with a value = "monk"
$('#test').on('click', function() {
$('input[name^= "answer"]:checked').each(function(){
if ($('input[name = answer]:checked').val() == "monk"){
secondaryResults.mnk++;
console.log(secondaryResults);
}
})
现在上面的工作完美无缺,如果我尝试相同的代码行但是切换值和变量++,那么它无法工作;我得到的反应是它只是将值添加到第一个变量。
例如:
问题1:答案=和尚
问题2:答案=和尚
问题3:答案=牧师
问题4:答案=向导使用此代码我希望console.log吐出
僧侣:2
牧师:1
向导:1
相反,它吐出了和尚:4我尝试为不同的变量创建相同的函数(在您下面看到第二次尝试值/ var berserker / ber)并将其附加到同一个click事件。我也尝试将它放在.each()函数内以及第一个.on()函数内。我每次都得到相同的结果
所以问题:我需要在上面的代码部分中包含哪些内容来制作代码:
目前代码执行此操作,但仅适用于对象中Monk缩短为mnk的一个输入值/变量。
所有剧本:
$(window).load(function() {
$(".intro").appendTo('#display_box');
var question = $(".question");
var questionPosition = -1;
var secondaryResults = {
def:0,
ber:0,
mnk:0,
rng:0,
cle:0,
thf:0,
mge:0,
};
var primaryResults = {
def:0,
ber:0,
mnk:0,
rng:0,
cle:0,
thf:0,
mge:0,
};
function clearBox(){
$("#display_box").children().fadeOut(500).appendTo('#question_holding');
};
function cycle(){
question.eq(questionPosition).fadeIn(500).appendTo("#display_box");
$("#display_box").animate({scrollTop:0}, 500);
}
$('#leftarrow').on('click', function(){
questionPosition--;
if (questionPosition <= -1) {questionPosition = 13};
clearBox();
cycle();
});
$('#rightarrow').on('click', function(){
questionPosition++;
if (questionPosition > 13) { questionPosition = 0};
clearBox();
cycle();
if($('input[name^="answer"]:checked').length > 13 ) {
$("#submit").css('display', 'block');
}
});
$('#test').on('click', function() {
$('input[name^= "answer"]:checked').each(function(){
if ($('input[name = answer]:checked').val() == "monk"){
secondaryResults.mnk++;
console.log(secondaryResults);
}
})
});
$('#test').on('click', function() {
$('input[name^= "answer"]:checked').each(function(){
if ($('input[name = answer]:checked').val() == "berserker"){
secondaryResults.ber++;
console.log(secondaryResults);
}
})
});
});