2025. 9. 7. 03:54γFront-end/JavaScript

λͺ©μ°¨
1. DOM νμ
2. μμ λ Έλ νμ
3. 00
1. DOM νμ
DOMμ λͺ¨λ μ°μ°μ document κ°μ²΄λ‘λΆν° μμνλ€.
document κ°μ²΄λ DOMμ μ κ·ΌνκΈ° μν μ§μ μ μΈ μ μ΄λ€.
https://ldd6cr-adness.tistory.com/279
λ°λΌμ JSλ‘ HTML λ¬Έμμ μ κ·Όν λλ documentλ₯Ό ν΅ν΄ μ κ·Όνλ€.
html, body, head νκ·Έμ μ κ·Όν μ μλ μμ±λ€μ κ°κ° μλμ κ°λ€.
- <html> : document.documentElement
- <body> : document.body
- <head> : document.head
<!DOCTYPE html>
<html>
<head>
<title>DOM μΆλ ₯ μμ</title>
<script>
console.log("document.body: " + document.body); // null
</script>
</head>
<body>
<script>
console.log("document.documentElement");
console.log("document.head");
console.log("document.body");
</script>
</body>
</html>

μ μμμμ <head> λ΄λΆμμ document.bodyλ₯Ό μ κ·Ό μλνλ©΄ nullμ μ»λλ€.
μμ§ μ½μ§ μμκΈ° λλ¬Έμ μ‘΄μ¬νμ§ μμμ λ»νλ nullμ μΆλ ₯νλ κ²μ΄λ€.
2. μμ λ Έλ νμ
- μμ λ
Έλ (child node / children)
- λ°λ‘ μλμ μμ μμλ₯Ό νλλΈλ€.
- <head>μ <body>λ <html>μ μμ λ Έλ - νμ λ
Έλ (descendants)
- μ€μ²© κ΄κ³μ μλ λͺ¨λ μμλ₯Ό μλ―Ένλ€.
- <div>, <ul>, <li> ... λ <body>μ νμ λ Έλ
μμ λ Έλ, νμ λ Έλλ₯Ό νμνκΈ° μν΄ μ¬μ©νλ μμ±λ€μ μ΄ν΄λ³΄μ.
μλ μμ±λ€μ λͺ¨λ μ½κΈ° μ μ©μ΄λ€.
λν κ±°μ λλΆλΆμ μνΈμμμ DOM 컬λ μ μ DOMμ νμ¬ μνλ₯Ό μλμΌλ‘ λ°μνλ€.
- [element].childNodes : elementμ λͺ¨λ μμ λ
Έλλ₯Ό λ΄μ 컬λ μ
(collection)
e.g. document.body.childNodes → bodyμ λͺ¨λ μμ λ Έλλ₯Ό λ΄μ - [element].firstChild : elementμ 첫λ²μ§Έ μμ λ Έλ
- [element].lastChild : elementμ λ§μ§λ§ μμ λ Έλ
- [element].hasChildNodes() : μμ λ Έλμ μ‘΄μ¬ μ¬λΆλ₯Ό κ²μ¬νλ ν¨μ
for (let node of document.body.childNodes) {
alert(node); // 컬λ μ
λ΄μ λͺ¨λ λ
Έλλ₯Ό 보μ¬μ€λ€.
}
** 컬λ μ
μ μ΄ν°λ¬λΈ μ μ¬ λ°°μ΄ κ°μ²΄λ‘, for..ofλ₯Ό μ¬μ©ν μ μλ€. (λ°°μ΄μ μλλ―λ‘ λ°°μ΄ λ©μλλ₯Ό μΈ μ μμ)
** 컬λ μ
μλ μΆκ° νλ‘νΌν°κ° μμΌλ―λ‘, for..inμ μ λλ‘ μ¬μ©νλ©΄ μλλ€.
3. νμ λ Έλ
- νμ λ
Έλ (sibling)
- κ°μ λΆλͺ¨λ₯Ό κ°μ§ λ Έλ κ΄κ³μ΄λ€.
- <head>μ <body>λ νμ λ Έλ
νμ / λΆλͺ¨ λ Έλμ λν μ 보μ μ κ·Όνλ μμ±λ€μ μμ보μ.
- [element].nextSibling : λ€μ νμ λ Έλμ λν μ 보
- [element].previousSibling : μ΄μ νμ λ Έλμ λν μ 보
- [element].parentNode : λΆλͺ¨ λ Έλμ λν μ 보
console.log( document.body.parentNode === document.document.Element); // true
console.log( document.head.nextSibling ); // HTMLBodyElement
console.log( document.body.previousSibling ); // HTMLHeadElement
μ°Έκ³
μ°Έκ³ μλ£λ§ν¬
'Front-end > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| DOM λ Έλμ λμνλ ν΄λμ€ (0) | 2025.09.22 |
|---|---|
| E2 : μμ κ²μνκΈ° (0) | 2025.09.08 |
| B23 : iterable κ°μ²΄ (1) | 2025.08.29 |
| μ΅μ λ 체μ΄λ ?. (1) | 2025.08.29 |
| B27: JSON λ©μλ (0) | 2025.08.26 |
GitHub