코딩 스쿨 JavaScript

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

JavaScript DOM Document

JavaScript DOM Document: 문서 객체 모델의 Document 객체

DOM Document 객체는 웹 페이지의 전체 HTML 문서를 나타내며, JavaScript를 통해 문서의 구조, 내용, 스타일 등을 조작할 수 있는 주요 방법을 제공합니다. Document 객체는 **DOM 트리의 루트(root)**로, 페이지에 있는 모든 요소, 텍스트, 속성 등에 접근하고 수정할 수 있는 메서드와 속성을 포함하고 있습니다.

이 가이드는 JavaScript DOM Document 객체의 기본 개념과 주요 메서드 및 속성을 설명합니다.


1. Document 객체란?

Document 객체HTML 문서를 표현하는 객체로, 웹 페이지의 모든 요소에 접근하고 조작할 수 있는 인터페이스를 제공합니다. Document 객체를 사용하여 DOM 요소를 선택하고, 생성하고, 삭제하는 등의 작업을 수행할 수 있습니다.

1.1. Document 객체 생성

Document 객체는 브라우저에 의해 자동으로 생성되며, JavaScript를 통해 접근할 수 있습니다.

console.log(document);  // Document 객체를 출력

  • *document*는 전역 객체이며, 페이지 로드 시 브라우저가 자동으로 생성합니다.

2. Document 객체의 주요 속성

Document 객체는 여러 속성을 제공하여 웹 페이지의 구조와 내용을 쉽게 탐색할 수 있습니다.

2.1. document.title

문서의 제목을 나타내는 속성입니다. 제목은 <title> 태그의 내용을 나타내며, 읽거나 수정할 수 있습니다.

console.log(document.title);  // 현재 문서의 제목 출력
document.title = 'New Document Title';  // 제목 변경

2.2. document.body

문서의 <body> 요소를 나타내는 속성입니다. 이 속성을 사용하여 body 내부의 콘텐츠를 조작할 수 있습니다.

console.log(document.body);  // <body> 요소 출력
document.body.style.backgroundColor = 'lightblue';  // 배경색 변경

2.3. document.documentElement

문서의 루트 요소를 나타내는 속성입니다. 보통 <html> 요소를 참조합니다.

console.log(document.documentElement);  // <html> 요소 출력

2.4. document.head

문서의 <head> 요소를 나타내는 속성입니다. 이 속성을 사용하여 head 내부의 요소를 조작할 수 있습니다.

console.log(document.head);  // <head> 요소 출력


3. Document 객체의 주요 메서드

Document 객체는 HTML 요소를 선택하고, 생성하고, 삭제하는 다양한 메서드를 제공합니다.

3.1. createElement()

새로운 HTML 요소를 생성하는 메서드입니다. 이 메서드는 DOM에 추가하기 전에 요소를 동적으로 생성할 수 있게 해줍니다.

const newDiv = document.createElement('div');  // 새로운 <div> 요소 생성
newDiv.textContent = 'Hello, World!';  // 텍스트 추가
document.body.appendChild(newDiv);  // body에 추가

3.2. getElementById()

ID 속성으로 특정 요소를 선택하는 메서드입니다. HTML 문서에서 ID는 고유해야 하므로, 이 메서드는 단일 요소를 반환합니다.

const element = document.getElementById('myElement');
console.log(element);  // ID가 'myElement'인 요소 출력

3.3. querySelector()

CSS 선택자를 사용하여 첫 번째 일치하는 요소를 선택하는 메서드입니다. 보다 유연하게 요소를 선택할 수 있습니다.

const firstParagraph = document.querySelector('p');  // 첫 번째 <p> 요소 선택
console.log(firstParagraph.textContent);  // 텍스트 출력

3.4. querySelectorAll()

CSS 선택자를 사용하여 모든 일치하는 요소NodeList로 반환하는 메서드입니다.

const allItems = document.querySelectorAll('.item');  // 모든 클래스가 'item'인 요소 선택
allItems.forEach(item => console.log(item.textContent));

3.5. remove()

선택한 요소를 DOM에서 삭제하는 메서드입니다.

const elementToRemove = document.getElementById('removeMe');
elementToRemove.remove();  // 요소 삭제


4. Document 객체와 이벤트

Document 객체는 DOM 요소에 이벤트 리스너를 추가하여 사용자 상호작용을 처리하는 데 중요한 역할을 합니다.

4.1. addEventListener()

Document 객체에서 이벤트 리스너를 추가하여 특정 이벤트가 발생했을 때 처리할 작업을 정의할 수 있습니다.

<button id="myButton">Click Me!</button>

<script>
  const button = document.getElementById('myButton');
  button.addEventListener('click', () => {
      alert('Button was clicked!');
  });
</script>

  • 위 코드에서 버튼이 클릭될 때마다 이벤트 리스너가 실행되어 알림 창이 표시됩니다.

5. Document 객체의 사용 예시

Document 객체를 사용하여 웹 페이지의 특정 작업을 수행하는 예시입니다.

5.1. 동적 콘텐츠 추가

사용자가 버튼을 클릭할 때마다 새로운 내용을 추가하는 간단한 예시입니다.

<button id="addButton">Add Item</button>
<ul id="itemList"></ul>

<script>
  const button = document.getElementById('addButton');
  const itemList = document.getElementById('itemList');

  button.addEventListener('click', () => {
      const newItem = document.createElement('li');
      newItem.textContent = 'New Item';
      itemList.appendChild(newItem);  // <ul>에 새로운 항목 추가
  });
</script>

  • 사용자가 "Add Item" 버튼을 클릭하면 새로운 목록 항목이 추가됩니다.

요약

JavaScript DOM Document 객체는 HTML 문서를 프로그래밍적으로 제어할 수 있는 중요한 도구입니다. Document 객체를 사용하면 웹 페이지의 구조와 내용을 조작, 이벤트 처리를 수행할 수 있습니다.

  • Document 객체의 주요 속성: title, body, documentElement, head 등으로 문서의 기본 정보를 접근합니다.
  • DOM 요소 선택 메서드: getElementById(), getElementsByClassName(), querySelector() 등을 사용하여 요소에 접근합니다.
  • DOM 요소 조작 메서드: createElement(), setAttribute(), remove() 등을 사용하여 요소를 생성하거나 삭제합니다.
  • 이벤트 처리: addEventListener()를 사용하여 사용자 상호작용을 감지하고 처리합니다.

DOM Document 객체를 활용하여 동적이고 상호작용적인 웹 애플리케이션을 구축할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com