Collective Noun Quiz 1

Dynamic Quiz App
${q.options.map((opt, i) => ` `).join('')}
`; nextBtn.disabled = true; document.querySelectorAll('input[name="answer"]').forEach(input => { input.addEventListener('change', () => { clearInterval(timerInterval); const selectedVal = parseInt(input.value); const labels = quizEl.querySelectorAll("label"); labels.forEach((label, index) => { if (index === quizData[currentQuestion].correct) { label.classList.add("correct"); } else if (index === selectedVal) { label.classList.add("incorrect"); } }); disableOptions(); nextBtn.disabled = false; }); }); } nextBtn.addEventListener("click", () => { const selected = document.querySelector('input[name="answer"]:checked'); userAnswers.push(selected ? parseInt(selected.value) : -1); currentQuestion++; if (currentQuestion < quizData.length) { loadQuestion(); } else { loaderEl.style.display = 'block'; quizEl.style.display = 'none'; nextBtn.style.display = 'none'; timerEl.style.display = 'none'; setTimeout(() => { loaderEl.style.display = 'none'; showResults(); }, 2000); } }); function showResults() { updateProgress(); let correctCount = 0; let resultHTML = '

Results

'; quizData.forEach((q, i) => { const isCorrect = userAnswers[i] === q.correct; if (isCorrect) correctCount++; resultHTML += `
Q${i+1}: ${q.question}
Your answer: ${q.options[userAnswers[i]] || 'Not Answered'} ${!isCorrect ? `(Correct: ${q.options[q.correct]})` : ''}

`; }); const scorePercent = Math.round((correctCount / quizData.length) * 100); resultHTML += `

You got ${correctCount} out of ${quizData.length} correct (${scorePercent}%).

`; resultEl.innerHTML = resultHTML; // Show celebration if (scorePercent >= 90) { celebrationEl.textContent = "🎉🎊 Amazing! You're a collective noun master! 🎊🎉"; } else if (scorePercent >= 60) { celebrationEl.textContent = "🎉 Great job! You did well! 🎉"; } else { celebrationEl.textContent = "😢 Keep practicing! You can do better next time. 😢"; } } loadQuestion();

Share This Post: