본문 바로가기
Effect

QuizEffect - 02

by 코딩 냠냠 2022. 8. 4.
728x90
반응형

스크립트를 이용한 퀴즈 만들기 02(주관식)

스크립트를 이용하여 쉽게 웹디자이너기능사 시험에 관한 퀴즈를 만들 수 있으며, 주관식 유형으로 정답을 맞췄는지 틀렸는지도 알 수있게 할 수 있습니다.

Script

//선택자
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 quizInput = document.querySelector(".quiz__answer .input");      //사용자 정답
const quizView = document.querySelector(".quiz__view");                //정답 알람
    
//문제 정보
const answerType = "웹디자인기능사";
const answerNum = "2";
const answerAsk = "기업의 새로운 이념 구축에 필요한 이미지와 커뮤니케이션 시스템을 의도적, 계획적으로 만들어내는 기업이미지통합 전략은 무엇인가요?";
let answerResult = "CIP";       //상수는 변경 불가능이라 let으로 바꿔줌

//문제 출력
quizType.textContent = answerType;
quizNumber.textContent = answerNum + ". ";
quizAsk.textContent = answerAsk;
quizResult.textContent = "정답은 : " + answerResult + " 입니다.";

//정답 숨기기
quizResult.style.display = "none";

//정답 확인
quizConfirm.addEventListener("click", () => {
    quizInput.style.display = "none";
    quizResult.style.display = "block";         
    quizConfirm.style.display = "none";

    //사용자 정답
    const userWord = quizInput.value.toLowerCase().trim();   //소문자로 바꿔 줌, 여백을 없애줌
    answerResult = answerResult.toLowerCase().trim();        //대문자를 소문자로 바꿔주었음,소문자 넣어도 정답
    // console.log(userWord)
    // console.log(answerResult)

    //사용자 정답 == 문제 정답
    if(userWord == answerResult) {
        //정답
        //alert("정답입니다.")
        quizView.classList.add("like");
    } else {
        //오답
        //alert("오답입니다.")
        quizView.classList.add("dislike");
    }
});    //function생략하고 화살표 함수 가능, 정답 버튼을 클릭 했을 때

textContent( )

선택자를 만든 후, textContent를 이용하여 요소에 텍스트를 설정할 수 있으며, addEventListener("click")은 클릭을 하였을 경우, 발생하는 이벤트 요소 입니다.

.toLowerCase( )
.trim( )

toLowerCase( )은 영문을 소문자로 변형시켜 주며, .trim( )는 여백을 없애주는 역할을 합니다.

quizConfirm.style.display = "none";
classList.add(" ");

스크립트를 통하여 style요소도 추가할 수 있으며, classList.add( )를 통해 클래스를 추가 할 수 있습니다.

quizConfirm.addEventListener("click", () => {
    quizInput.style.display = "none";
    quizResult.style.display = "block";
    quizConfirm.style.display = "none";
    //사용자 정답
    const userWord = quizInput.value.toLowerCase().trim();
    answerResult = answerResult.toLowerCase().trim();
    //사용자 정답 == 문제 정답
    if(userWord == answerResult) {
        quizView.classList.add("like");
    } else {
        quizView.classList.add("dislike");
} });

함수기능을 사용하여 버튼을 클릭 하였을 때 실행 할 수 있도록 하며, 이때 function은 생략하고 화살표 함수로 변경이 가능 합니다.

'Effect' 카테고리의 다른 글

SearchEffect01  (4) 2022.08.16
QuizEffect - 05  (2) 2022.08.15
QuizEffect - 04  (8) 2022.08.08
QuizEffect - 03  (6) 2022.08.05
QuizEffect - 01  (9) 2022.08.04

댓글


자바스크립트

Javascript

자세히 보기
html
css
광고 준비중입니다.
<