2012-12-16 30 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