[HTML/JavaScript] querySelector, getElementById, addEventListener

2025. 2. 18. 20:00·Frondend

웹 개발에서 HTML 요소를 선택하고 조작하는 것은 매우 중요합니다. JavaScript에서는 querySelector, getElementById 등의 메서드를 사용하여 요소를 선택할 수 있으며, addEventListener를 활용하여 이벤트를 처리할 수 있습니다.


1. querySelector와 getElementById 비교

HTML 요소를 선택하는 대표적인 두 가지 방법은 querySelector와 getElementById입니다.

메서드 설명 사용 예제
getElementById 문서에서 id 속성을 가진 요소 하나를 선택 document.getElementById("myElement")
querySelector CSS 선택자를 사용하여 첫 번째 요소를 선택 document.querySelector(".myClass")
querySelectorAll CSS 선택자를 사용하여 모든 요소를 선택 (NodeList 반환) document.querySelectorAll("p")

2. getElementById 사용 예제

getElementById는 특정한 id 속성을 가진 요소를 가져옵니다.

document.getElementById("btn").addEventListener("click", function() {
    alert("버튼이 클릭되었습니다!");
});

HTML 코드:

<button id="btn">클릭하세요</button>

3. querySelector 사용 예제

querySelector를 사용하면 CSS 선택자로 요소를 선택할 수 있습니다.

document.querySelector(".btn").addEventListener("click", function() {
    alert("클래스 선택자로 버튼을 클릭했습니다!");
});

HTML 코드:

<button class="btn">클릭하세요</button>

4. querySelectorAll로 여러 개 요소 선택

querySelectorAll을 사용하면 특정 CSS 선택자와 일치하는 모든 요소를 가져올 수 있습니다.

document.querySelectorAll(".item").forEach(item => {
    item.addEventListener("click", function() {
        alert("항목을 클릭했습니다: " + this.textContent);
    });
});

HTML 코드:

<ul>
    <li class="item">항목 1</li>
    <li class="item">항목 2</li>
    <li class="item">항목 3</li>
</ul>

5. addEventListener로 이벤트 처리

addEventListener를 사용하면 요소에 이벤트를 등록할 수 있으며, 여러 개의 이벤트 핸들러를 추가하는 것도 가능합니다.

document.getElementById("myButton").addEventListener("mouseover", function() {
    this.style.backgroundColor = "yellow";
});

document.getElementById("myButton").addEventListener("mouseout", function() {
    this.style.backgroundColor = "";
});

HTML 코드:

<button id="myButton">마우스를 올려보세요</button>

💡 결론

getElementById와 querySelector는 HTML 요소를 선택하는 중요한 메서드이며, addEventListener를 사용하여 다양한 이벤트를 처리할 수 있습니다.

이러한 메서드를 활용하면 HTML 요소를 조작하고 동적인 웹 페이지를 만들 수 있습니다. 🚀

반응형

'Frondend' 카테고리의 다른 글

[Frontend] Axios Interceptor vs Transform(Request/Response)  (0) 2025.02.18
[HTML] Attribute  (0) 2025.02.18
[HTML] dl, dt, dd 태그  (2) 2025.02.18
[HTML/JavaScript] DOM 트리  (0) 2025.02.17
[HTML] HTML5 란?  (0) 2025.02.17
'Frondend' 카테고리의 다른 글
  • [Frontend] Axios Interceptor vs Transform(Request/Response)
  • [HTML] Attribute
  • [HTML] dl, dt, dd 태그
  • [HTML/JavaScript] DOM 트리
JJuuuunn
JJuuuunn
  • JJuuuunn
    JJuuuunn
    JJuuuunn
  • 전체
    오늘
    어제
    • 분류 전체보기 (70)
      • Backend (7)
        • Java (7)
      • Frondend (48)
        • Vue.js (12)
        • JavaScript (21)
        • Css (1)
      • Infra (0)
      • Git (2)
      • CS (5)
        • DataBase (0)
        • Network (2)
        • OS (0)
        • Algorithm (0)
      • 리뷰 (5)
        • 강의 (1)
        • Books (4)
      • ETC (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    객체
    Vue.js
    frontend
    Network
    KDT
    javascript
    HTML
    렌더링
    VUE
    Java
    자바스크립트
    API
    이벤트
    혼공컴운
    자바
    axios
    깊은 감시
    신세계i&c
    혼자 공부하는 컴퓨터구조+운영체제
    Watch
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.1
JJuuuunn
[HTML/JavaScript] querySelector, getElementById, addEventListener
상단으로

티스토리툴바