2012-12-16 29 views
0

Newb to JS。试图阻止如何输出问题1以外的内容是真和假。如果我正确理解这一点,那么输出结果是标志True或False的表达式。试图改变说正确和不正确。也试图表达的正确,而不是例如一个百分比:你的总得分是10/100输出非True或False的信息

$(function(){ 
    var jQuiz = { 
     answers: { q1: 'd', q2: 'd', }, 
     questionLenght: 2, 
     checkAnswers: function() { 
      var arr = this.answers; 
      var ans = this.userAnswers; 
      var resultArr = [] 
      for (var p in ans) { 
       var x = parseInt(p) + 1; 
       var key = 'q' + x; 
       var flag = false; 
       if (ans[p] == 'q' + x + '-' + arr[key]) { 
        flag = true; g 
       } 
       else { 
        flag = false; 
       } 
       resultArr.push(flag); 
      } 
      return resultArr; 
     }, 
     init: function(){ 
      $("[class=btnNext]").click(function(){ 
       if ($('input[type=radio]:checked:visible').length == 0) { 

        return incorrect ; 
       } 
       $(this).parents('.questionContainer').fadeOut(500, function(){ 
        $(this).next().fadeIn(500); 
       }); 
       var el = $('#progress'); 
       el.width(el.width() + 11 + 'px'); 
      }); 
      $('.btnPrev').click(function(){ 
       $(this).parents('.questionContainer').fadeOut(500, function(){ 
        $(this).prev().fadeIn(500) 
       }); 
       var el = $('#progress'); 
       el.width(el.width() - 11 + 'px'); 
      }) 
      $("[class=btnShowResult]").click(function(){ 
       var arr = $('input[type=radio]:checked'); 
       var ans = jQuiz.userAnswers = []; 
       for (var i = 0, ii = arr.length; i < ii; i++) { 
        ans.push(arr[i].getAttribute('id')) 
       } 
      }) 
      $('.btnShowResult').click(function(){ 
       $('#progress').width(260); 
       $('#progressKeeper').hide(); 
       var results = jQuiz.checkAnswers(); 
       var resultSet = ''; 
       var trueCount = 0; 
       for (var i = 0, ii = results.length; i < ii; i++){ 
        if (results[i] == true) trueCount++; 
        resultSet += '<div> Question ' + (i + 1) + ' is ' + results[i] + '</div>' 
       } 
       resultSet += '<div class="totalScore">Your total score is ' + trueCount * 4 + '/100</div>' 
       $('#resultKeeper').html(resultSet).show(); 
      }) 
     } 
    }; 
    jQuiz.init(); 
}) 

回答

0

变化

'问题' +(I + 1)+ '是' +结果[1] + ''

'问题' +(I + 1)+ '是' +(结果[I]? “正确的”? “Incorect”)+ ''

其他人喜欢:

resultSet += '<div class="totalScore">Your % correct is ' + (trueCount * 4/100).toFixed(0) + '%</div>' 

请通过Javascript Wiki at stackoverflow获得学习指针。

+0

%修复工作完美!我只需调整我的数学方程,但太棒了。非常感谢。 – David

+0

欢迎您! – closure

+0

@大卫:请在适当的情况下注意/接受答案。 – closure

1

你可以改变

resultArr.push(flag); 

resultArr.push(flag?"correct":"incorrect"); 

if (results[i] == true) 

if (results[i] === "correct") 

我希望百分比数为

resultSet += '<div class="totalScore">Your % correct is ' + 
    parseInt((trueCount/results.length)*100) + '%</div>' 
+0

这工作得很好!确切地说它应该做什么。非常感谢。 – David

+0

很好 - 请[ACCEPT](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – mplungjan