728x90
*DOM: ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(The Document Object Model)
1. ์์ฑํ๊ณ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
- ul์ด ์๋ค.
- document.createElement('li')๋ฅผ ๋ง๋ค์ด์ค๋ค.
- document.createTextNode('pink')๋ ๋ง๋ค์ด์ค๋ค.
๊ทธ๋ค์ li์ appendChild(pinkText)์ด์ฉํด์ ๋ฐฉ๊ธ ๋ง๋ text node๋ฅผ ๋ฃ์ด์ค๋ค.
๊ทธ๋ค์์ ul.appendChild(li)๋ฃ์ด์ฃผ๋ฉด ๋ง๋ฌด๋ฆฌ๋๋ค.
* appendChild(): ์ง์ ํ ๋ถ๋ชจ๋
ธ๋์ ๊ฐ์ฅ ๋ง์ง๋ง ์์์ผ๋ก ์ถ๊ฐ๋๋ค.
* insertBefore() : ์ง์ ํ ๋ถ๋ชจ๋
ธ๋์ ๊ทธ ์ด์ ์ผ๋ก ์ถ๊ฐ๋๋ค.
//Console
const newLi3 = document.createElement('li);
undefined
cost textNode3 = documnet.createTextNode('black');
undefined
newLi3.appendChild(textNode3);
"black"
const red = document.getElementById('red');
undefined
ul.insertBefore(newLi3, red);
<li>...</li>
ul.appendChild(red); //์ฐ๋ฆฌ๊ฐ ๋ด์ผํ๋ ๋ถ๋ถ์ ์ฌ๊ธฐ์๋ถํฐ
<li id ="red">_</li>
ul.insertBefore(red, newLi3); // red๋ black ์ด์ ์ผ๋ก ์ด๋ํ๋ค. newLi3๋ black์ด๋ฏ๋ก
<li id ="red">_</li>
2. ๋ ธ๋ ๋ณต์ (cloneNode)
const newBlack = newLi3.colneNode(); //black์ ๋ณต์ ํด์ newBlack์ ๋ง๋ค์๋ค.
ul.appendChild(newBlack);
โถ<li>...</li> // liํ๊ทธ๋ง ๋ณต์ ๋์๋ค. ๊ดํธ์ ์๋ฌด๊ฒ๋ ์ ์ง ์๋ ๊ฐ์ ์
๋ ฅํ๋ฉด node์ ์์๋ง ๋ณต์ ๋๋ค.
- clone ๋
ธ๋๋ ์ธ์๋ก ๋ถ๋ฆฐ๊ฐ์ ๋ฐ๋๋ค.
const newBlack2 = newLi3.cloneNode(true); // true๊ฐ์ ๋ฃ์ด์ฃผ์๋ค. true๋ฅผ ์ ๋ฌํ๋ฉด ๊น์ ๋ณต์ ๋ฅผ ์์ํ๊ณ ์์๋
ธ๋๊น์ง ๋ชจ๋ ๋ณต์ ๋๋ค.์ฌ๊ธฐ์ ์์๋
ธ๋๋ TextNode์.
ul.appendChild(newBlack2); // ์ถ๊ฐํ๋ฉด text๊น์ง ์ ๋ณต์ ๋์ด ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์๋ ์ฌ์ง ์ฐธ๊ณ
3.๋ ธ๋ ์ญ์
ul.removeChild(red); //red์ง์์ง
ul.removeChild(newBlack2); // ๋ง์ง๋ง์ ์ถ๊ฐํ๋ black์ด ์ญ์ ๋๋ค.
red์ black์ด ์ญ์ ๋์๋ค.
ul.removeChild(ul.firstElementChild); // ์ฒซ๋ฒ์งธ ์์์์์ธ black์ด ์ญ์ ๋จ
ul.removeChild(ul.lastElementChild); // ๋ง์ง๋ง ์์์์์ธ black์ด ์ญ์ ๋จ
์ฐธ๊ณ :
https://velog.io/@hovelopin/JS-DOM-%EC%A0%9C%EC
728x90
'๐Development > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] DOM & EVENT #5 ์ด๋ฒคํธ ํธ๋ค๋ฌ(Event Handler) (0) | 2023.03.27 |
---|---|
[JS] DOM์ด๋? #4 CSS style, class ์ ์ด (0) | 2023.03.26 |
[JS] DOM์ด๋? #2 ๋ถ๋ชจ, ์์, ํ์ Node (0) | 2023.03.26 |
[JS] DOM์ด๋? #1 Node์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ (0) | 2023.03.26 |
[JS] Arrow Function์ ๋ฌด์์ธ๊ฐ? ํจ์์ ์ ์ธ๊ณผ ํํ (0) | 2023.03.13 |