오늘은 이미지 숨기기/보이기 토글 기능이다. 조금은 쉬운 미션으로 보이나 if문 활용에 대한 거라 걱정이다.
그리고 항상 addEventListener 기능을 쓸때 안을 어떻게 써야할지 아직 막막하다..ㅠㅠ
많이 써봐야 알수 있겠지..언제쯤 그날이 올까..🥹
🚩 처음 작성한 코드
const image = document.querySelect("#image");
const button = document.querySelect("#button");
botton.addEventLisnter("click", function(){
if(image.style.display === 'none'){
image.style.display = 'block';
}else{
image.style.display = 'none';
}
});
작성했는데 안돼서 뭐지..? 했다 '설마 hidden 인가? 해서 hideen은 아닌데..?' 라고 바꿔보았지만 역시나 되질 않았다.
블로그를 통해 찾아보았지만 여전히 똑같았다..다시 보니..내가 또 오타를 냈다..
📍 발생한 문제
- DOM 선택 메서드를 querySelect로 잘못 표기했다.
- 이벤트 리스너 메서드를 addEventLisnter로 오타를 냈다.
- 버튼 변수명 선언 시 사용한 button을 이벤트 처리할 때는 botton으로 오타를 냈다.
🔧 올바른 수정 코드
const image = document.querySelector("#image");
const button = document.querySelector("#button");
button.addEventListener("click", function(){
if(image.style.display === 'none'){
image.style.display = 'block';
}else{
image.style.display = 'none';
}
});
📖 코드 한 줄씩 상세 분석
1. const image = document.querySelector("#image");
- HTML에서 id가 image인 요소를 선택해 image라는 변수에 저장한다.
- 왜?: JavaScript에서 요소를 조작하기 위해 미리 선택해 둔다.
2. const button = document.querySelector("#button");
- 버튼 요소를 선택하여 button이라는 변수에 저장한다.
- 왜?: 버튼 클릭 이벤트를 관리하기 위해 버튼 요소를 미리 저장한다.
3. button.addEventListener("click", function(){ ... });
- 버튼 클릭 이벤트를 감지하여 클릭 시 실행할 코드를 설정한다.
- 왜?: 사용자가 버튼을 클릭할 때 동작이 수행되도록 한다.
4. if(image.style.display === 'none'){
- 이미지가 현재 보이지 않는 상태인지 확인한다.
- 왜?: 이미지가 숨겨져 있는지 보이고 있는지 상태를 판단하기 위함이다.
5. image.style.display = 'block';
- 이미지가 숨겨져 있다면 이미지를 보이게 설정한다.
- 왜?: CSS 스타일을 직접 바꿔 이미지가 보이도록 만든다.
6. image.style.display = 'none';
- 이미지가 보이고 있다면 숨기게 설정한다.
- 왜?: CSS 스타일을 직접 바꿔 이미지를 숨기도록 만든다.
👍 성공한 결과 화면
See the Pen Untitled by 7xfe user (@7xfe-user) on CodePen.
📖 문제 원인 분석 및 주의점
- JavaScript의 메서드명과 변수명은 정확히 일치해야 한다.
- DOM 요소 선택 시 정확한 메서드명을 기억하자 (querySelector).
- 이벤트 처리 시 정확한 메서드명을 확인하자 (addEventListener).
- 변수 선언과 사용할 때 철자가 정확히 일치하는지 항상 확인하자.
📌 의사코드 정리
1. 아이디가 "image"인 이미지 요소를 변수에 저장한다.
2. 아이디가 "button"인 버튼 요소를 변수에 저장한다.
3. 버튼 클릭 이벤트를 감지한다.
a. 클릭될 때마다 이미지의 현재 상태(보임/숨김)를 체크한다.
b. 이미지가 숨겨져 있다면 이미지를 보이게 한다.
c. 이미지가 보이고 있다면 이미지를 숨긴다.
✅ 배운점
- DOM 선택 및 이벤트 처리 메서드 이름 정확하게 기억하고 사용하기
- 변수명을 선언한 뒤 사용할 때는 반드시 정확히 일치하는지 확인하기
- 오타 발생 시 브라우저 콘솔창에서 오류 메시지 확인하기
📚 ChatGPT가 추가 학습 팁!
- 오타로 인해 코드가 정상 작동하지 않을 때는 브라우저 콘솔창(F12)을 열어 빠르게 원인을 찾자.
- 메서드명이나 속성을 사용할 때 공식 문서나 기존 예시를 참고하여 정확하게 작성하는 습관을 갖자.
'AI 실험실𖦹 > 데일리 코드 미션' 카테고리의 다른 글
🤖 ChatGPT와 함께 공부하는 JavaScript 5일차 - 간단한 디지털 시계 만들기 미션 (0) | 2025.04.03 |
---|---|
🤖 ChatGPT와 함께 공부하는 JavaScript 3일차 - 텍스트 컬러 변경 미션 (0) | 2025.03.27 |
🤖 ChatGPT와 함께 공부하는 JavaScript 2일차 - 카운터앱 미션 (0) | 2025.03.22 |
🤖 ChatGPT와 함께 공부하는 JavaScript 1일차 - 버튼 누르면 배경이 바뀌는 미션 (1) | 2025.03.21 |