본문 바로가기
Effect

QuizEffect04

by 코터틀 2022. 8. 8.
반응형

quizEffect04

js를 이용한 객관식 기출문제입니다.
참고하여 웹디자인기능사 시험을 준비합니다.


자바스크립트

퀴즈 3번의 응용으로 객관식 문제를 만들었습니다.
if문 안에 if문 사용과 출력문의 사용 이유 등을 확인해야합니다.

//선택자
const quizType = document.querySelector(".quiz__type");                     //퀴즈 종류
const quizNumber = document.querySelector(".quiz__question .number");       //퀴즈 번호
const quizAsk = document.querySelector(".quiz__question .ask");             //퀴즈 질문
const quizConfirm = document.querySelector(".quiz__answer .confirm");       //정답 확인 버튼
const quizResult = document.querySelector(".quiz__answer .result");         //정답 결과
const quizView = document.querySelector(".quiz__view");                     //강아지
const quizSelects = document.querySelector(".quiz__selects");               //객관식 보기
const quizChoice = quizSelects.querySelectorAll(".choice");                      //객관식 보기
const quizSelect = quizSelects.querySelectorAll(".select")                        //객관식 보기

//문제 정보
const quizInfo = [
    {
        answerType: "웹디자인기능사 2015년 02회",
        answerNum: "1",
        answerAsk: "웹문서 작성을 위한 국제표준언어가 아닌 것은?",
        answerChoice: ["MS-WORD", "SGML", "HTML", "XML"],
        answerResult: "1",
        answerEx: "마이크로소프트 워드(Microsoft Word)는 마이크로소프트에서 개발한 워드 프로세서입니다."
    }
];

function updateQuiz() {
    //문제 출력
    quizType.textContent = quizInfo[0].answerType;
    quizNumber.textContent = quizInfo[0].answerNum + ". ";
    quizAsk.textContent = quizInfo[0].answerAsk;
    quizResult.textContent = quizInfo[0].answerResult;
    quizResult.textContent = quizInfo[0].answerEx;

    //보기 출력
    for (i = 0; i < quizSelect.length; i++) {
        quizChoice[i].textContent = quizInfo[0].answerChoice[i];
    }

    // quizInfo.forEach(function (el, i) {
    //     quizChoice[0].textContent = quizInfo[i].answerChoice[0];
    //     quizChoice[1].textContent = quizInfo[i].answerChoice[1];
    //     quizChoice[2].textContent = quizInfo[i].answerChoice[2];
    //     quizChoice[3].textContent = quizInfo[i].answerChoice[3];
    // });

    //해설 숨기기
    quizResult.style.display = "none";
}
updateQuiz();

//정답 확인
function answerQuiz() {
    //사용자 선택 정답 == 문제 정답
    //사용자가 클릭한 input --> checked

    for (let i = 0; i < quizSelect.length; i++) {
        if (quizSelect[i].checked == true) {    //보기에 체크가 된 상태
            //체크된 번호 == 문제 번호
            if (quizSelect[i].value == quizInfo[0].answerResult) {
                // alert("정답");
                quizView.classList.add("like");
            } else {
                // alert("오답");
                quizView.classList.add("dislike");
                quizResult.style.display = "block";
                quizConfirm.style.display = "none";
            }
        }
    }
}
quizConfirm.addEventListener("click", answerQuiz);
반응형

'Effect' 카테고리의 다른 글

SearchEfferct02  (5) 2022.08.17
SearchEffect01  (5) 2022.08.16
QuizEffect03  (10) 2022.08.06
QuizEffect02  (12) 2022.08.04
QuizEffect01  (14) 2022.08.04

댓글


광고 준비중입니다.