스크립트를 이용한 퀴즈 만들기 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 |
댓글