0

JS初心者。問題 1 以外のものを出力する方法を決定しようとすると、True と False になります。これを正しく理解していれば、出力はフラグ True または False の式になります。正解と不正解を言うように変更しようとしています。また、例の代わりに正しいパーセンテージを表現しようとしています: あなたの合計スコアは 10/100 です

$(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();
})
4

2 に答える 2

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>'
于 2012-12-16T17:13:04.247 に答える
0

変化する

' 質問 ' + (i + 1) + ' は ' + 結果[i] + '' です

' 質問 ' + (i + 1) + ' is ' + (results[i] ? "正解" ? "不正解") + ''

他のようなもの:

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

学習のヒントを得るには、stackoverflow の Javascript Wiki を参照してください。

于 2012-12-16T17:09:55.623 に答える