JS

[JS] DOCUMENT 객체와 관련된 다양한 기능과 이벤트

litzoo 2024. 11. 18. 20:57

 

출처 https://www.codestates.com/blog/content/dom-javascript


1. document ready

document ready는 문서가 DOM(Document Object Model)을 모두 로드했을 때 실행되는 이벤트입니다.
즉, DOM이 준비된 시점에 JavaScript 코드를 실행할 수 있도록 합니다.

예시:

jQuery를 사용한 방식

javascript
코드 복사
$(document).ready(function() { console.log("DOM이 준비되었습니다!"); });

Vanilla JavaScript를 사용한 방식

javascript
코드 복사
document.addEventListener("DOMContentLoaded", function() { console.log("DOM이 준비되었습니다!"); });
// jQuery
$(document).ready(function() { 
	console.log("DOM이 준비되었습니다!"); 
});

//Vanilla JavaScript를 사용한 방식
document.addEventListener("DOMContentLoaded", function() { 
	console.log("DOM이 준비되었습니다!"); 
});
 
  • 사용 이유:
    • HTML 구조가 모두 로드된 이후에 DOM 요소를 조작할 수 있게 합니다.
    • 페이지 전체의 리소스(이미지 등)가 모두 로드되기 전에 실행됩니다.

2. document on

document on은 jQuery에서 **이벤트 위임(Event Delegation)**을 구현하는 데 사용됩니다. 특정 이벤트를 하위 요소에 위임하는 방식으로, 동적으로 추가된 요소에도 이벤트를 적용할 수 있습니다.

예시:

jQuery를 사용한 방식

javascript
코드 복사
$(document).on("click", ".dynamic-button", function() { console.log("동적으로 추가된 버튼이 클릭되었습니다!"); });
  • 사용 이유:
    • 동적으로 생성된 요소에도 이벤트를 바인딩할 수 있음.
    • DOM에 미리 존재하지 않는 요소를 대상으로 이벤트 처리.

3. document와 관련된 이벤트 및 메서드

document 객체와 관련된 다양한 이벤트와 메서드가 있습니다:

이벤트

  1. DOMContentLoaded
    • DOM이 모두 로드되었을 때 발생.
    javascript
    코드 복사
    document.addEventListener("DOMContentLoaded", function() { console.log("DOM 준비 완료"); });
  2. load
    • 페이지의 모든 리소스(이미지, CSS 등 포함)가 로드되었을 때 발생.
    javascript
    코드 복사
    window.addEventListener("load", function() { console.log("모든 리소스가 로드되었습니다."); });

beforeunload / unload

  • 사용자가 페이지를 떠나기 전에 발생.
document.addEventListener("DOMContentLoaded", function() { 
	console.log("DOM 준비 완료"); 
});

 

메서드

  1. getElementById / querySelector
    • DOM 요소를 선택.
    const element = document.getElementById("myElement"); 
    const anotherElement = document.querySelector(".myClass");
  2. createElement
    • 새로운 DOM 요소 생성.
    const newDiv = document.createElement("div"); 
    newDiv.textContent = "새로운 요소"; 
    document.body.appendChild(newDiv);
     

4. 비교 정리

기능document readydocument on

주요 목적 DOM 준비 후 실행 이벤트 위임을 통한 동적 요소 처리
사용 시점 DOMContentLoaded 이벤트 시점 이벤트 발생 시
사용 예시 초기 DOM 조작 동적 요소(ajax 로드 등) 이벤트 처리

5. 추가로 알아두면 좋은 document 관련 기능

  • document.title: 현재 문서의 제목을 가져오거나 설정.
  • document.cookie: 쿠키를 읽거나 설정.
  • document.body: <body> 요소를 직접 참조.
  • document.forms: 페이지의 모든 폼을 배열 형태로 반환.
  • document.querySelectorAll: CSS 셀렉터로 DOM 요소를 모두 선택.

이외에도 document는 웹 페이지의 구조와 동작을 다루는 핵심적인 객체로, 다양한 속성과 메서드를 제공합니다.

728x90
반응형