βοΈ μμ μ νλ°©λ² (DOM) βοΈ
01. DOM (Document Object Model) λ¬Έμ κ°μ²΄ λͺ¨λΈ
HTML λ¬Έμ λ΄μ λͺ¨λ μμλ₯Ό κ°κ°μ κ°μ²΄λ‘ μ μνμ¬, κ°κ°μ μμμ μ κ·Όνλ λ°©λ²μ μ 곡νλ μΈν°νμ΄μ€λ₯Ό μλ―Έν©λλ€.
HTML λ¬Έμμ μλ°μ€ν¬λ¦½νΈλ₯Ό μ°κ²°ν΄μ£Όλ ν΅μμ¬μ μν μ ν©λλ€.
μλ°μ€ν¬λ¦½νΈλ DOM μ ν΅ν΄ HTML λ¬Έμμ κ° μμμ μ κ·Όν μ μκ³ ,
μ΄λ₯Ό ν΅ν΄ HTML λ¬Έμμ μμλ₯Ό μμ±, λ³ν, μμ νλ λ±μ μΉ νμ΄μ§ μ μ΄κ° κ°λ₯ν©λλ€.
DOM μ document κ°μ²΄μ μ§ν©μ΄λ©°, κ°μ²΄μ λΆμκ΄κ³λ₯Ό λνλ΄λ νΈλ¦¬ κ΅¬μ‘°λ‘ ννλ©λλ€.
___ μ°Έκ³ νκΈ° ___
1) μΈν°νμ΄μ€ (interface) λ μλ‘ λ€λ₯Έ λ μμ€ν
μ΄ μ 보λ₯Ό κ΅ννλ κ²½μ°μ μ μ λλ κ²½κ³λ©΄μ μλ―Έν©λλ€.
2) ' λ¬Έμ κ°μ²΄ 'λ HTML λ¬Έμμ νκ·Έλ€μ μλ°μ€ν¬λ¦½νΈ (Javascript) κ° μ΄μ©ν μ μλλ‘ λ§λ κ°μ²΄λ₯Ό λ§ν©λλ€.
3) DOM μ BOM (Browser Object Model) μ€μ νλλ‘, BOM μ μ΅μμ κ°μ²΄μΈ ' Window κ°μ²΄ 'μ νμ κ°μ²΄ μ
λλ€.
4) Text νμμ HTML λ¬Έμλ₯Ό λΈλΌμ°μ μ λ λλ§ νλ €λ©΄, HTML λ¬Έμλ₯Ό λΈλΌμ°μ κ° μ΄ν΄ν μ μλ ꡬ쑰(DOM)λ‘ λ©λͺ¨λ¦¬μ μ¬λ €μΌ ν©λλ€.
μ¬κΈ°μ λ λλ§μ λ
Όλ¦¬μ μΈ λ¬Έμμ ννμμ κ·Έλν½ ννμμΌλ‘ λ³νμν€λ κ³Όμ μ λ§ν©λλ€.
λ λλ§μ DOM μμμ μ€νμΌμ κΈ°λ°μ λ λ μ΄μμμ κ³μ°νκ³ , κ³μ°λ μμλ₯Ό νλ©΄μ νννλ κ³Όμ μΌλ‘ μ΄λ£¨μ΄μ§λλ€.
5) λ¬Έμ κ°μ²΄ μμ±μ μ’
λ₯
- μ μ μμ± : HTML λ¬Έμμ νκ·Έλ₯Ό μ¬μ©νμ¬ μ§μ μμ±νμ¬ μμ±ν©λλ€.
- λμ μμ± : HTML νμ΄μ§μ μλ λ¬Έμ κ°μ²΄λ₯Ό Javascript λ₯Ό μ΄μ©νμ¬ μμ±νλ κ²μ λ§ν©λλ€.
[1] λ Έλ (node)
DOM μμ κ°μ²΄νν κ°κ°μ κ°μ²΄λ₯Ό λ§νλ©°, μ 보λ₯Ό μ μ₯ν κ³μΈ΅μ λ¨μλ₯Ό μλ―Έν©λλ€ .
<head>, <body>, <title>, <script>, <h1> λ±μ νκ·Έ μμ λΏλ§ μλλΌ, νκ·Έ μμ ν
μ€νΈλ μμ±λ κ°κ°μ λ
Έλ μ
λλ€.
νκ·Έ μμλ ' μμ λ
Έλ ', ν
μ€νΈλ₯Ό ' ν
μ€νΈ λ
Έλ 'λΌκ³ λ§ν©λλ€.
κ° λ
Έλλ λΆλͺ¨-μμ κ΄κ³λ‘ μ°κ²° λμ΄ μμΌλ©°, λΆμ λ
Έλλ₯Ό κ°μ§λ λ
Έλλ₯Ό λΆλͺ¨ λ
ΈλλΌκ³ νκ³ λΆλͺ¨μ μνλ λΆμ λ
Έλλ₯Ό μμ λ
ΈλλΌκ³ ν©λλ€.
[2] νΈλ¦¬(tree) ꡬ쑰
HTML λ¬Έμμ μ λ³΄κ° μ μ₯λλ DOM μ κ³μΈ΅μ μ°κ²° ꡬ쑰λ₯Ό μλ―Έν©λλ€.
μ΅μμμ λΏλ¦¬λ₯Ό κΈ°μ€μΌλ‘ μλλ‘ κ°μ§λ₯Ό λ»μ΄λκ°λ λ무 λͺ¨μμΌλ‘ ννλ©λλ€.
02. μμ μ νλ°©λ²
μμλ μ νμλ₯Ό ν΅ν΄μ λΆλ¬μ€λλ°, μμλ₯Ό μ ννλ λ°©λ² (μ κ·Ό λ°©λ²)μ λ€μκ³Ό κ°μ΅λλ€.
[1] μμλ₯Ό μ§μ μ ννλ λ©μλ
___ μ°Έκ³ νκΈ° ___
1) λ©μλ (method) λ μ΄λ€ κ°μ²΄κ° κ°μ§κ³ μλ λμμ μλ―Έν©λλ€.
μλ°μ€ν¬λ¦½νΈμμλ κ°μ²΄ μμ νλ‘νΌν°(property)λ‘ μ μλ ν¨μλ₯Ό λ©μλλΌκ³ λ§ν©λλ€.
λ©μλ | μ€λͺ |
---|---|
getElementById( ) | document.getElementById('content') μΌ κ²½μ°, HTML μμ μ€μμ id μμ±μ΄ 'content'μΈ μμλ₯Ό μ νν©λλ€. |
getElementByClassName( ) | document.getElementByClassName('menu') μΌ κ²½μ°, HTML μμ μ€μμ class λͺ μ΄ 'menu' μΈ μμλ€μ μ νν©λλ€. |
getElementByClassName( ) | document.getElementByClassName('ul') μΌ κ²½μ°, HTML μμ μ€μμ νκ·Έ λͺ μ΄ 'ul' μΈ μμλ€μ μ νν©λλ€. |
querySelecter( ) |
μμμ μ ν λ°©λ²μ΄ css μ ν λ°©λ²κ³Ό λμΌν©λλ€. μ νλ μμ μ€μμ μ²«λ² μ¨° μμλ§ μ νν©λλ€. document.querySelecter('.lnb') document.querySelecter(div) document.querySelecter('#gnb li') |
querySelecterAll( ) | querySelecter( ) λ μ νλ μμ μ€ μ²« λ²μ¨° μμλ§ μ ννλ λ°λ©΄, querySelecterAll( ) λ λͺ¨λ μμλ₯Ό μ νν©λλ€. |
# μμ μ ν λ©μλμ μ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>μμλ₯Ό μ§μ μ ννλ λ©μλ</title>
<script>
window.onload = function() {
var list1 = document.querySelector('#box1 > ul > li');
var list2 = document.querySelectorAll('#box2 > ul > li');
console.log(list1);
console.log(list2);
};
</script>
</head>
<body>
<div id="box1">
<ui>
<li>λ΄μ©1</li>
<li>λ΄μ©2</li>
<li>λ΄μ©3</li>
</ui>
</div>
<div id="box2">
<ui>
<li>λ΄μ©4</li>
<li>λ΄μ©5</li>
<li>λ΄μ©6</li>
</ui>
</div>
</body>
</html>
document.querySelectorAll( )λ‘ μμλ₯Ό μ ννμ κ²½μ°, λͺ¨λ μμκ° μ νλμ§ λλ¬Έμ λ³μμ λ°°μ΄λ‘ μ μ₯λ©λλ€.
[2] μλ μμΉλ‘ μ ννλ λ°©λ²
μ νν μμμ νμ¬ μμΉλ₯Ό κΈ°μ€μΌλ‘ μμλ₯Ό μ νν©λλ€.
μμ± κ° | μμ± μ€λͺ |
---|---|
parentNode | μ νλ μμμ λΆλͺ¨ λ Έλλ₯Ό μ νν©λλ€. |
childNodes | μ νλ μμμ μμ λ Έλλ€(μμ λ Έλ, ν μ€νΈ λ Έλ)λ₯Ό μ νν©λλ€. |
children |
μ νλ μμμ μμ λ
Έλλ€(μμ λ
Έλ)λ₯Ό μ νν©λλ€. childNodes λ 'μν°(enter)' λ λΉ λ¬Έμ(text)λ‘ μΈμνμ¬ μμ λ Έλλ‘ μ·¨κΈνμ§λ§, children μ μν°λ₯Ό μμ λ Έλλ‘ μ·¨κΈνμ§ μλ μ°¨μ΄μ μ΄ μμ΅λλ€. |
nextSibling | μ νλ μμμ μ΄μ νμ λ Έλλ₯Ό μ νν©λλ€. |
previousSibling | μ νλ μμμ λ€μ νμ λ Έλλ₯Ό μ νν©λλ€. |
firstChild | μ νλ μμμ μμ λ Έλ μ€ μ²« λ²μ¨° λ Έλλ₯Ό μ νν©λλ€. |
lastChild | μ νλ μμμ μμ λ Έλ μ€ λ§μ§λ§ λ Έλλ₯Ό μ νν©λλ€. |
tagName | μ νλ μμμ νκ·Έλͺ μ λ°νν©λλ€. |
nodeValue | μ νλ μμμ Value κ°μ λ°νν©λλ€. |
nodeType |
μ νλ μμμ νμ
μ λ°νν©λλ€. λ°ν κ°μ΄ 1 μ΄λ©΄ μμ, 2 μ΄λ©΄ μμ±, 3 μ΄λ©΄ ν μ€νΈ λ₯Ό μλ―Έν©λλ€. |
id | μ νλ μμμ id κ°μ λ°νν©λλ€. |
className | μ νλ μμμ class κ°μ λ°νν©λλ€. |
'Javascript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ΄μ₯ ν¨μ (3) | 2022.08.16 |
---|---|
λ°°μ΄ κ°μ²΄ (1) (2) | 2022.08.12 |
μ§μ / μ μ λ³μ (3) | 2022.08.06 |
ν¨μ (7) | 2022.07.27 |
λ°μ΄ν° μ ν (7) | 2022.07.27 |
λκΈ