Quiz 배열 선언
const arr_quiz = [
{
question : "문제1. ~~"
,answer : {
A: "보기1"
,B: "보기2"
,C: "보기3"
,D: "보기4"
}
,correct : C
}
,
{
question : "문제2. ~~"
,answer : {
1: "보기1"
,2: "보기2"
,3: "보기3"
,4: "보기4"
,5: "보기5"
}
,correct : 3
}
];
Quiz 표현
- forEach(item,index) -> for~in( 보기의 개수가 다른 경우 )
let html = ``;
arr_quiz.forEach((item,index) => {
html += `<p id="q${index}>${item.question}</p>`;
html += `<ol>`;
for(let property_name in item.answer){
html += `<li>
<label for="${index}${property_name}">
${item.answers[property_name]}</label>
<input id="${index}${property_name}" type="radio"
name = "question${index}"
value="${property_name}" />
</li>`;
}
html += `</ol>`;
html += `<div id=`ox${index}`></div>`;
});
document.querySelector("위치").innerHTML = html;
채점
let answer_cnt = 0;
arr_quiz.forEach((item,index) => {
const question
= document.querySelector(`p#q${index}`).innerHTML;
document.querySelector(`p#q${index}`).innerHTML
= question + ` ${item.correct}`;
============================================================
let radio_length
= document.querySelectorAll(`
input[name="question${index}"]`).length;
let isCheckAnswer = false;
for(let i=0; i<radio_length; i++){
if(document.querySelectorAll(`
input[name="question${index}"]`)[i].checked){
isCheckAnswer = true;
break;
}
}
============================================================
let user_answer;
if(isCheckAnswer){
user_answer
= document.querySelector(`
input[name="question${index}"]:checked`).value;
}
else{
user_anser = "선택안함";
}
============================================================
if(user_answer == item.correct){
answer_cnt++;
document.querySelector(`div#ox${index}`).innerHTML
= "정답";
}
else{
document.querySelector(`div#ox${index}`).innerHTML
= "오답";
}
});
============================================================
document.querySelector("위치").innerHTML = `${answer_cnt}`;
정리
- 09javascriptStandardObject -> 02_Date
-> 03타이머_객체배열을사용한객관식문제만들기.html, 03.css, 03.js