- Vanilla JS
- CSS
- HTML
2021-05-17 ~ 24
-
κ°κ΄μ 5λ¬Έμ λ₯Ό νλμ© νμ΄μ μ΅μ’ μΌλ‘ λͺκ° λ§μ£Όμλμ§ μ€μ½μ΄ κ³μ°νμ¬ μΆλ ₯
-
λ€μ νλ² λ (μ²μμΌλ‘ λμκ°μ) λ²νΌ ν΄λ¦ μ, μ²μ λ¬Έμ λ‘ return
function loadQuiz() {
deselectAnswers();
const currentQuizData = quizData[currentQuiz]; // set currentQuizData
// put into HTML from quizData
questionEl.innerText = currentQuizData.question;
a_text.innerText = currentQuizData.a;
b_text.innerText = currentQuizData.b;
c_text.innerText = currentQuizData.c;
d_text.innerText = currentQuizData.d;
}
// execute loadQuiz
loadQuiz();
function getSelected() {
let answer = undefined;
answersEls.forEach((answerEl) => {
if (answerEl.checked) {
answer = answerEl.id;
}
});
return answer;
}
function deselectAnswers() {
answersEls.forEach((answerEl) => {
answerEl.checked = false;
})
}
// add click btn to change next question
submitBtn.addEventListener('click', () => {
// check to see the answer
const answer = getSelected();
if (answer) {
if (answer === quizData[currentQuiz].correct) {
score++;
}
// after clicking, next index in quizData
currentQuiz++;
if (currentQuiz < quizData.length) loadQuiz();
else {
quiz.innerHTML = `
<h2>λΉμ μ μ μλ.. ${score}/${quizData.length} μ
λλ€.</h2>
<button onclick = "location.reload()">λ€μ νλ²λ!!</button>
`
}
}
})
-
ν΄μ¦ λ°μ΄ν°λ₯Ό μ¬λ¬ ν¨μλ₯Ό ν΅ν΄ (
loadQuiz()
,getSelected()
,deselectAnswers()
) λ¬Έμ , μ λ΅ μ JS quizdata λ₯Ό λΉκ΅νκ³ DOM μ μ¬μ©ν΄μ HTML λ¬Έμμ μΆλ ₯ νλλ²μ λ°°μ λλ°, ν¨μκ° μ¬λ¬κ°μ§κ° μλμ΄λμ μ½λλ₯Ό μ΄ν΄νλλ° μ΄λ €μμ΄ μμλ€. -
νλ¨λΆμ λ²νΌμ λ§λ€μ΄, click μ λ€μνμ΄μ§ μ ν λ° score ++ νλ€μ, μ΅μ’ νμ΄μ§μμ μ μλ₯Ό λνλ΄μ£Όμλ€. => λ λμκ°μλ μ ? νλ Έλμ§ λ¬Έμ μλν μ€λͺ κ³Ό λͺλ² λ¬Έμ κ° νλ Έλμ§ μλ €μ£Όλ κΈ°λ₯μ νμ΅ νμ μΆκ° ν μμ μ΄λ€.