const quizContainer = document.getElementById('quiz'); const resultsContainer = document.getElementById('results'); const submitButton = document.getElementById('submit') const createQuizBtn = document.getElementById('create_constructor') function buildQuiz(){ const output = []; // перебираем вопросы myQuestions.forEach( (currentQuestion, questionNumber) => { const answers = []; // перебираем ответы for(letter in currentQuestion.answers){ // добавляем радио кнопку answers.push( `` ); } output.push( `
${currentQuestion.question}
${answers.join('')}
` ); setAnswersToLS(answers) } ); quizContainer.innerHTML = output.join(''); } const setAnswersToLS = (data) => { localStorage.setItem('answers', JSON.stringify(data)); } const getAnswersLS = () => { const answersLS = JSON.parse(localStorage.getItem('answers')); if (answersLS) { answersLS.forEach((answer, index) => answers[index] = answer) } } function showResults(){ // контейнер для ответов const answerContainers = quizContainer.querySelectorAll('.answers'); // счётчик правильных ответов let numCorrect = 0; // для каждого вопроса myQuestions.forEach( (currentQuestion, questionNumber) => { // находим выбранный ответ const answerContainer = answerContainers[questionNumber]; const selector = `input[name=question${questionNumber}]:checked`; const userAnswer = (answerContainer.querySelector(selector) || {}).value; const rightAnswer = currentQuestion.correctAnswer; // если ответ правильный if(userAnswer === rightAnswer){ // то добавляем к правильным ответам numCorrect++; // и отмечаем зелёным answerContainers[questionNumber].style.color = 'green'; } // если ответ не правильный, или не отмеченный else { // - тогда красный answerContainers[questionNumber].style.color = 'red'; const correctAnswer = document.createElement('p'); correctAnswer.innerText=`Correct answer is: ${rightAnswer}` answerContainers[questionNumber].appendChild(correctAnswer) } }); // показываем результат let userTestResult = numCorrect >= 7 ? "passed" : "did not pass"; resultsContainer.innerHTML = `

You ${userTestResult} the test! Take the test again

You scored ${numCorrect} out of ${myQuestions.length}
`; document.querySelector('.test-again').onclick = (e) => { e.preventDefault(); localStorage.removeItem('answers'); location.reload(); } }