Advertisement
Bubbs

quiz.js

Dec 19th, 2018
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let questions = [
  2.     {
  3.         question: "Who owns Playstation?",
  4.         answers: {
  5.             A: "Sony",
  6.             B: "Microsoft",
  7.             C: "Google"
  8.         },
  9.         correct_answer: 'A'
  10.     },
  11.     {
  12.         question: "Who owns Xbox?",
  13.         answers: {
  14.             D: "Apple",
  15.             E: "Aperture Science",
  16.             F: "Microsoft"
  17.         },
  18.         correct_answer: 'F'
  19.     },
  20.     {
  21.         question: "Who owns Macintosh?",
  22.         answers: {
  23.             G: "Microsoft",
  24.             H: "Apple",
  25.             I: "Google"
  26.         },
  27.         correct_answer: 'H'
  28.     },
  29.     {
  30.         question: "Which browser did Google create?",
  31.         answers: {
  32.             J: "Chrome",
  33.             K: "FireFox",
  34.             L: "Opera"
  35.         },
  36.         correct_answer: 'J'
  37.     },
  38.     {
  39.         question: "Which OS did Linus Torvalds create?",
  40.         answers: {
  41.             M: 'OSX',
  42.             N: 'Windows',
  43.             O: 'Linux'
  44.         },
  45.         correct_answer: 'O'
  46.     }
  47. ];
  48.  
  49. function create_quiz(questions, quiz_container, results_container, submit_button){
  50.     function show_questions(questions, quiz_container){
  51.         let output = [];
  52.         let answers;
  53.  
  54.         for(let i = 0; i < questions.length; i++){
  55.             answers = [];
  56.             console.log("this is i:" + i);
  57.  
  58.             for(letter in questions[i].answers){
  59.                 console.log("This is letter: " + letter);
  60.                 answers.push(
  61.                     '<label>'
  62.                     + '<input type="radio>" name="question' + i + '" value="' + letter + '">'
  63.                     + letter + ': '
  64.                     + questions[i].answers[letter]
  65.                   + '<label>'
  66.                 );
  67.             }
  68.         }
  69.         quiz_container.innerHTML = output.join('');
  70.     }
  71.  
  72.     function show_results(questions, quiz_container, results_container){
  73.         let answer_containers = quiz_container.querySelectorAll('.answers');
  74.         let user_answer = '';
  75.         let num_correct = 0;
  76.         for(let i = 0; i < questions.length; i++){
  77.             console.log('show_results for loop i: ' + i);
  78.             user_answer = answer_containers[i].querySelector('input[name=question'+i+']:checked'||{}).value;
  79.             if(user_answer === questions[i].correct_answer){
  80.                 num_correct++;
  81.                 answer_containers[i].style.color = 'lightgreen';
  82.             }
  83.             else{
  84.                 answer_containers[i].style.color = 'red';
  85.                 console.log(answer_containers);
  86.             }
  87.         }
  88.         results_container.innerHTML = num_correct + ' out of ' + questions.length;
  89.     }
  90.  
  91.     show_questions(questions, quiz_container);
  92.  
  93.     submit_button.onclick = function(){
  94.         show_results(questions, quiz_container, results_container);
  95.     }
  96. }
  97.  
  98. let quiz_container = document.getElementById('quiz');
  99. let results_container = document.getElementById('results');
  100. let submit_button = document.getElementById('submit');
  101.  
  102. create_quiz(questions, quiz_container, results_container, submit_button);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement