Ted's Codding study

DOM (Document Object Model) 본문

JavaScript

DOM (Document Object Model)

Ted93 2024. 5. 18. 20:48

1. DOM의 정의

1) 문서 객체

  • HTML 안에서는 요소(Element)로 불리는 객체를 JS에서는 문서 객체라고 불림

2) 문서 객체 모델(Document Object Model: DOM)

  • 웹 페이지를 프로그래밍 방식으로 조작하고 관리할 수 있는 인터페이스(상호작용, 규약)

2. DOM의 사용

  • JS를 사용하여 DOM에 접근하는 경우 웹 페이즈이 요소를 선택, 추가, 수정, 삭제하는 데 사용할 수 있는 메소드와 속성에 접근이 가능
  • CRUD - Create(생성), Read(읽기), Update(수정), Delete(삭제)

3. DOMContentLoaded 이벤트

  • 문서 객체를 조작할 때 사용하는 이벤트
  • HTML의 모든 문서 구조(내용)가 모두 로드된 이후에 해당 이벤트가 발생
  • 웹 브라우저가 문서 객체를 모두 읽고 나서 실행하는 이벤트
  • 문서 객체가정립된 이후에 스크립트(콜백함수)가 실행되기 때문에 오류 방지 가능
document.addEventListener('DOMContentLoaded', () => {
  // 해당 위치에 DOM 조작 코드를 작성
});

4. 문서 객체 가져오기

1) document.body

  • 문서의 body 요소를 읽어들이는 코드
  • body 외에도 head요소, title 요소 등도 읽어오기 가능
  • 문서 '객체' 가져오기
  • 문서의 큰 틀 요소 가져오기(HTML 문서에 있는 요소를 직접 가져오기)
    • document.head
    • document.body
    • document.title

2) querySelector() & querySelectorAll() 메소드

  • head요소와 body요소 내부에 생성한 다른 요소들을 읽어올 때 사용하는 메소드
  • 선택자 부분에는 CSS 선택자를 입력 : 태그, #아이디, .클래스, [속성=값], 선택자A 후손B

3) document.querySelector(선택자)

  • 요소를 하나만 추출(여러 개일 경우 제일 상단의 요소만 가져오기)
document.addEventListener('DOMContentLoaded', () => {
  // 요소를 읽어오기
  const header = document.querySelector('h1');

  // 텍스트와 스타일을 변경 (HTML의 속상값들을 활용)
  header.textContent = 'HEADER ONE';
  header.style.color = 'white';
  header.style.backgroundColor = 'black';
  header.style.padding = '10px';
});

4) document.querySelectorAll(선택자)

  • 문서 객체를 여러 개 추출
  • 문서 객체 여러 개를 배열로 읽어들이는 함수
  • 내부의 요소에 접근하고 활용하려면 반복을 사용
  • 일반적으로 배열 메소드
document.addEventListener('DOMContentLoaded', () => {
  // 요소 읽기
  const items = document.querySelectorAll('li');

  // 텍스트와 스타일을 변경
  items.forEach((item, index) => {
    item.textContent = `LIST ITEM ${index + 1}`;
    item.style.color = 'pink';
    item.style.backgroundColor = 'black';
    item.style.listStyle = 'none';
    item.style.padding = '0px';
  });
});

5) document.getElementById()

  • 주어진 ID를 가진 요소를 찾아 그 요소를 반환
  • ID는 문서 내에서 유일해야 함
document.addEventListener('DOMContentLoaded', () => {
  let example = document.getElementById('example');
  example.style.color = 'blue';
});

 

노션으로 보고 싶다면?

https://short-echidna-b16.notion.site/DOM-c6e317799b444c089a4411d26eb01504?pvs=4

 

DOM (Document Object Model) | Notion

목차

short-echidna-b16.notion.site