Front/JavaScript
[JavaScript] DOM
ddo04
2024. 7. 6. 23:21
π±β DOM (Document Object Model)
- htmlμ΄λ xml κ°μ λ¬Έμμ μμλ€μ κ³μΈ΅μ μΌλ‘ ννν΄μ μμ±νκ³ μμ νκ³ μμ νλ λ±
- μ΄λ€ μ‘°μμ΄ κ°λ₯νκ²λ ν΄μ£Όλ νλμ μΈν°νμ΄μ€λ₯Ό μλ―Έ
- λͺ¨λ htmlμ μμλ€μ html λμμ ν΅ν΄ μ°λ¦¬κ° μ κ·Όν μκ° μκ³ μ‘°μν μ μκ² λ¨
- DOMμ λ°°μ°λ μ΄μ λ html λ¬Έμμ μλ μ΄λ€ μμλ₯Ό μ‘°μνκ±°λ μλ‘μ΄ μμλ₯Ό λ§λ€μ΄μ html λ¬Έμμ μΆκ°νκ±°λ κΈ°μ‘΄μ μμλ₯Ό μμ νλ κ²μ νκΈ° μν¨
- μμ μ νκ³Ό λ³κ²½, μμ±μ΄λΌλ ν¬κ² 3κ°μ§ λΆλ₯λ‘ λλ μ μ΄μΌκΈ°
- μμλ₯Ό μ‘°μνλ €λ©΄ μ°μ μ΄λ€ μμλ₯Ό μ‘°μν μ§ μμλ₯Ό μ ννλ κ³Όμ νμ
- html λ¬Έμμ μλ μμλ€ μ€μ λ΄κ° μνλ νΉμ μμλ₯Ό μ ννκΈ° μν΄μλ html λ¬Έμ κ°μ²΄μΈ Document κ°μ²΄μμ μ 곡νλ λ©μλλ€μ νμ©νκ² λ¨
- μ 곡λλ λ©μλλ 5κ°μ§
- id κ°μΌλ‘ μμλ₯Ό μ ννκ±°λ class κ°μΌλ‘ μμλ₯Ό μ ννκ±°λ νκ·Έ μ΄λ¦ μμ μ체 μ νμλ‘ μ ννλ λ°©λ² μμ
π±β getElementByld()
- id κ°μ μ¬μ©ν΄μ μμ μ ν
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h2 id="title" class="title_class">Hello</h2>
<script src="test.js"></script>
const title = document.getElementById('title');
console.log(title);
π± getElementByClassName()
- ν΄λμ€ μ΄λ¦μ κ°μ§κ³ μμ μ ν
- Element λ€μ sλ λΆμ
- getElementById -> getElementsByClassName
- ()μ λ€μ΄κ°λ μΈμμ κ°μ μ νν μμκ° κ°μ§κ³ μλ ν΄λμ€ κ°
- htmlμμ μμ΄λ κ°μ μ μΌν κ°
- λ©μλλ₯Ό μ¬μ©νμμ λ μ νλλ μμλ νλμ΄μ§λ§ μ€λ³΅ν΄μ λ€μμ μμλ€ λμΌν ν΄λμ€λ₯Ό μ¬μ©ν μ μμ
- λ°νλλκ²°κ³Όκ°λ λ¨μΌ μμκ° μλλΌ λ°°μ΄μ²λΌ 리ν΄
const title = document.getElementsByClassName('title_class');
console.log(title);
π± getElementByTagName()
- νκ·Έ μ΄λ¦μΌλ‘ μμλ₯Ό μ ννλ λ°©λ²
- μμκ° νλκ° μλλΌ μ¬λ¬ κ°κ° λ μ μκΈ° λλ¬Έμ λμΌν νκ·Έλ₯Ό μ¬μ©νλ μμλ€μ΄ λ°°μ΄μ²λΌ λ³ν
const title = document.getElementsByTagName('h2');
console.log(title);
π± querySelector(), querySelectorAll()
- μμλ₯Ό μ νν λ Id κ°μ΄λ ν΄λμ€ μ΄λ¦μ΄λ νκ·Έ μ΄λ¦μΌλ‘ μ ννλ λ°©λ²μ΄ μ’μ§λ μμ
- μμ΄λλ₯Ό μ¬μ©νλ μΉκ΅¬λ₯Ό μ νν λλ μ΄ λ©μλλ₯Ό μ»λ€κ° ν΄λμ€λ‘ μ ννλ €λ©΄ λ λ€λ₯Έ λ©μλλ₯Ό μ»λ€κ° μ΄λ° μμΌλ‘ νμ¬μΌ ν¨
- querySelector()μ λμΌν λ©μλλ₯Ό μ¬μ©ν΄μ μμ΄λλ ν΄λμ€, νκ·Έ μ΄λ¦μΌλ‘ λͺ¨λ μ νν μ μμ
- νκ·Έμ μ΄λ¦μ μμ±νλ©΄ νκ·Έμ μ΄λ¦μΌλ‘ μ νμ΄ λ¨
- cssμ²λΌ #μ λΆμ΄κ³ Id κ°μμμ±νλ©΄ μμ΄λλ₯Ό κΈ°μ€μΌλ‘ μμκ° μ ν
- cssμ²λΌ .μ λΆμ΄κ³ class μ΄λ¦μ λͺ μνλ©΄ ν΄λμ€λ₯Ό κΈ°μ€μΌλ‘ μ νν μ μκ² λ¨
- querySelectorAll()μ μΈμλ‘ μ§μ ν μ νμμ μΌμΉνλ μμλ€μ λͺ¨λ μ ννλ λ€μμ μμλ€μ λ°°μ΄μ²λΌ κ°μ Έμ€κΈ°μν΄ μ¬μ©νλ λ©μλ
const title = document.querySelector('title');
const title = document.querySelector('#title');
const title = document.querySelector('.title_class');
console.log(title);
- ν΄λμ€λ₯Ό μ¬μ©νλ λͺ¨λ μμλ€μ λ§μΉ λ°°μ΄μ²λΌ 리ν΄νκ²
π± HTML μμμ μμ±μ λ³κ²½νλ λ°©λ²
- μ νν μμμ μμ± κ°μ΄λ μ€νμΌ λ±μ λ³κ²½νλ λ°©λ²μ λν΄μ
- innerTextλ₯Ό μ¬μ©νμ¬ κΈ°μ‘΄μ μ£Όμλ κ°μ λ³κ²½
- style.colorλ₯Ό μ¬μ©νμ¬ ν°νΈμ μμμ λ³κ²½
π± HTMLElement
- html Element κ°μ²΄κ° κ°μ§κ³ μλ νλμ νλ‘νΌν°μ΄κ³ html λͺ¨λ μμλ€μ΄ html ElementλΌλ κ°μ²΄λ₯Ό μμλ°κ³ μκΈ° λλ¬Έμ
- html Elementκ° κ°μ§κ³ μλ νλ‘ν¬νΈλ λ€μ
π± createElement()β
- μλ‘μ΄ μμλ₯Ό μμ±ν΄μ html λ¬Έμμ μΆκ°νλ λ°©λ²
- μΈμ κ°μΌλ‘ μμ±νλ €λ μμμ νκ·Έλ₯Ό λ¬Έμμ΄λ‘ μ λ¬νλ©΄ λ¨
- μμ±λ μμλ λμΌν νκ·Έ μμλ₯Ό μ νν κ²κ³Ό κ°μ
- html Element κ°μ²΄λ₯Ό μμλ°κΈ° λλ¬Έμ innerTextλ style κ°μ νλ‘νΌν°λ₯Ό μ¬μ©νμ¬ κ°μ΄λ μ€νμΌ λ±μ μ‘°μν μ μ μ
- μ΄λ κ² μμ±ν μμλ₯Ό μ€μ λ¬Έμμ μΆκ°ν΄μ£Όμ§ μμΌλ©΄ 보μ΄μ§ μμ
- λ¬Έμμ μΆκ°ν΄μ£ΌκΈ° μν΄μλ κΈ°μ‘΄μ λ¬Έμμ μλ μ΄λ€ μμλ₯Ό κ°μ Έμ¨ λ€μμ κ·Έ μμλ₯Ό λΆμ¬μ£Όλ κ³Όμ νμ
- appendChild λ©μλλ₯Ό μ¬μ©ν΄μ μΈμλ‘ μ°λ¦¬κ° μμ±ν νμ΄νμ μ λ¬μ ν΄μ£Όκ² λλ©΄ μλ‘ μμ±ν μμκ° λ¬Έμμ μΆλ ₯μ΄ λ¨
const title = document.createElement('h1');
const body = document.querySelector('body');
title.innerText = 'μλ‘μ΄ μΉκ΅¬μμ!';
title.style.color = 'red';
body.appendChild(title);