์ ์ฅ์์ HTML์ ํ์ฑํ ๊ฒฐ๊ณผ์ธ DOM ํธ๋ฆฌ์ ๋ํด ์๊ฒ๋์๋ค.
DOM์ ๋ํด ๊น๊ฒ ๊ณต๋ถํ๊ธฐ ์ํด ์ ํํ ์ฑ ์ DOM Enligntenment!
๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ๊ณ ์ ํ๋๋ฐ ์ฒซ์ฅ๋ถํฐ ์ดํด๊ฐ ๊ฐ์ง ์๋ ๋ถ๋ถ์ด ์๊ฒจ ํ๋ฒ ์ ๋ฆฌํ๊ณ ๋์ด๊ฐ๋ ค๊ณ ํ๋ค.
Node์ Element์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น?
DOM์ ๋ฌด์์ธ๊ฐ? DOM Node์ Element์ ์ฐจ์ด ๊ธ์ ํตํด ํํธ๋ฅผ ์ป์ ์ ์์๊ณ ์ดํดํ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค!
์ ๋ฆฌํ ๋ด์ฉ์ ํต์ฌ์ Node์ Element์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ ํ๋ก์ ํธ๋ฅผ ํ ๋ Node์ Element ์์ฑ์ ์ ์ ํ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค!
๋ชฉ์ฐจ
- DOM์ ์ ์
- Node ๊ฐ์ฒด์ ํ์
- Node์ ์์ฑ
- firstChild์ firstElementChild ์์ฑ ํ์ธํ๊ธฐ
- childNodes์ children ์์ฑ ํ์ธํ๊ธฐ
- Node์ ์์ฑ๊ณผ ๋ฉ์๋
Node ๊ฐ์ฒด์ ํ์
- DOCUMENT_NODE (ex. window.document)
- ELEMENT_NODE (ex. <body></body>, <a></a>)
- ATTRIBUTE_NODE (ex. cless="...")
- TEXT_NODE (ex. carraige returns, whitespace๋ฅผ ํฌํจํ๋ ํ
์คํธ)
- DOCUMENT_FRAGMENT_NODE (ex, document.createDocumentFragment())
- DOCUMENT_TYPE_NODE (ex. <!DOCTYPE html>)
ELEMENT_NODE
๊ฐ ์๋ค.Object < Node < Element < HTMLElement < (e.g., HTML*Element)
Node
๋ Node์ constructor์ด๊ณ ,ย HTMLElement
๋ Element์ constructor์ด๋ค.Node์ ์์ฑ
๋ชจ๋ Node๋ค์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์์๋ฐ์ DOM์ ํ์ฉํ ์ ์๋๋ก ํ๋๋ฐ ์๋๋ ๋ํ์ ์ธ NODE์ ์์ฑ์ด๋ค.
์ฆ, Node์๋ง ์๋ DOM ์์ฑ๊ณผ Element์๋ง ์๋ DOM ์์ฑ์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ด๋ค.
firstChild์ firstElementChild ์์ฑ ํ์ธํ๊ธฐ
<div>b</div>
๋ ELEMENT_NODE์ ํด๋นํ๋ค.console.log
) ๋ชจ๋ body์ ์ ๊ทผํด์ ๊ฐ๊ฐ firstChild์ firstElementchild๋ฅผ ํธ์ถํ๋ค.Node properties
์์ฑ์ธ firstChild ๋ด์ ์ํ๋ค.HTML *Element properties
์์ฑ์ธ firstElementChild ๋ด์ ์ํ์ง ์๋๋ค.<div>b</div>
๋ Element์ด๋ฏ๋กHTML *Element properties
์์ฑ์ธ firstElementChild ๋ด์ ์ํ๋ค.<!DOCTYPE html>
<html>
<body>
a
<div>b</div>
<script>
console.log(document.body.firstChild); // "a"
console.log(document.body.firstElementChild); // <div>b</div>
</script>
</body>
</html>
childNodes์ children ์์ฑ ํ์ธํ๊ธฐ
5 - 1) ํ ์คํธ
๋ง์ฝ ๋ค์๊ณผ ๊ฐ์ HTML ๋ฌธ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด,
<!DOCTYPE html>
<html>
<body>
Hello
<script>
console.log(document.body);
</script>
</body>
</html>
Hello๋ Element๊ฐ ์๋ TEXT_NODE์ด๋ฏ๋ก
Node properties
์์ฑ์ธ childNodes ๋ด์ ์ํ๋ค.HTML *Element properties
์์ฑ์ธ children ๋ด์ ์ํ์ง ์๋๋ค.5 - 2) <p>
ํ๊ทธ
์ 4 - 1) ๊ฒฝ์ฐ์ ํ์ถ๋๋ ํ๋ฉด์ ๋์ผํ์ง๋ง hello๋ฅผ <p>
ํ๊ทธ๋ก ๊ฐ์ธ๋ณด๋ฉด ๊ฒฐ๊ณผ๊ฐ์ ๋ค๋ฅด๊ฒ ๋์จ๋ค.
<!DOCTYPE html>
<html>
<body>
<p>Hello</p>
<script>
console.log(document.body.firstChild);
</script>
</body>
</html>
<p>Hello</p>
๋ Element์ด๋ฏ๋ก
Node properties
์์ฑ์ธ childNodes ๋ด์ ์ํ๋ค.HTML *Element properties
์์ฑ์ธ children ๋ด์ ์ํ๋ค.Node์ ์์ฑ๊ณผ ๋ฉ์๋
์ฆ, ๊ฐ ์ํฉ์ ๋ง์ถ์ด ๋ค์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด Node properties
์์ฑ์ firstChild์ HTML *Element properties
์์ฑ์ firstElementChild์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ ํ์์ ๋ฐ๋ผ ์ ํํ ์ ์์ผ๋ฉด ํ๋ก์ ํธ๊ฐ ๋ณด๋ค ์์ํ ๊ฒ์ด๋ค.
์ถ์ฒ
(์ฑ
) DOM Enligntenment
DOM์ ๋ฌด์์ธ๊ฐ? DOM Node์ Element์ ์ฐจ์ด