๋ฒ์: 07. DOM ํ์ฉํ๊ธฐ
DOM ํธ๋ฆฌ ๋ ธ๋๋ฅผ ๊ตฌ์ฑํ๋ ์์น
- ๋ชจ๋ HTML ํ๊ทธ๋ ์์ ๋ ธ๋๊ฐ ๋๋ค.
- HTMLํ๊ทธ ์ฌ์ฉํ๋ ํ ์คํธ ๋ด์ฉ์ ์์ ๋ ธ๋์ธ ํ ์คํธ ๋ ธ๋๊ฐ ๋๋ค.
- HTMLํ๊ทธ์ ์๋ ์์ฑ์ ๋ชจ๋ ์์ ๋ ธ๋๋ง ์์ฑ๋ ธ๋๊ฐ ๋๋ค.
- ์ฃผ์์ ์ฃผ์๋ ธ๋๊ฐ ๋๋ค.
๋ ธ๋๋ฆฌ์คํธ
DOM์ ์ ๊ทผํ ๋ querySelectorAll()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๋ ธ๋๋ฅผ ํ ๋ฒ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
์ด๋ ๊ฒ ๊ฐ์ ธ์จ ๋ค์ํ ๋ ธ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ ๊ฒ์ ๋ ธ๋๋ฆฌ์คํธ ๋ผ๊ณ ํ๋ค. (๋ฐฐ์ด x)
์น๋ฌธ์์ ์๋ก์ด ๋ ธ๋ ์ถ๊ฐํ๊ธฐ
- ์์ ๋ ธ๋ ๋ง๋ค๊ธฐ - createElement()๋ฉ์๋
let newP = document.createElement("p");
- ํ ์คํธ ๋ ธ๋ ๋ง๋ค๊ธฐ - createTextNode(ํ ์คํธ)๋ฉ์๋
let textNode = document.createTextNode("๋น๋น์งฌ๋ฝ");
- ์์ ๋ ธ๋ ์ฐ๊ฒฐํ๊ธฐ - appendChild()๋ฉ์๋
newP.appendChild(textNode);
body๋ ธ๋์ ์ ๊ทผํ ๋๋ document.body๋ผ๊ณ ํ๋ฉด ๋๋ค
document.body.appendChild(newP);
- ์์ฑ ๋ ธ๋ ๋ง๋ค๊ธฐ - createAttribute()๋ฉ์๋
let srcNode=document.createAttribute("src");
srcNode.value="images/wall.jpg";
- ์์ฑ ๋ ธ๋ ์ฐ๊ฒฐํ๊ธฐ - setAttributeNode()๋ฉ์๋
newImg.setAttributeNode(srcNode);
- ์์ ๋ ธ๋ ์ฐ๊ฒฐํ๊ธฐ -appendChild()๋ฉ์๋
document.body.appendChild(newImg);
- ๊ธฐ์กด ๋ ธ๋์ ์์ ์ ์์ ์ถ๊ฐํ๊ธฐ -insertBefore()๋ฉ์๋
let tsNode=document.createElement("p");
let tsTextNode = document.createTextNode("๊น๋๊ธฐ๋ณถ์๋ฐฅ");
tsNode.appendChild(tsTextNode);
๋ ธ๋ ์ญ์ ํ๊ธฐ
- ์์ ์ญ์ ํ๊ธฐ -remove()๋ฉ์๋
heading=document.querySelector("hi");
heading.remove();
- ์์ ๋ ธ๋ ์ญ์ ํ๊ธฐ -removeChild()๋ฉ์๋
์์ ๋ ธ๋๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋จผ์ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ์ฐพ๊ณ , ๊ทธ ํ์ ์์ ๋ ธ๋๋ฅผ ์ญ์ ํด์ผํ๋ค
//๋ถ๋ชจ ๋
ธ๋ ์ฐพ๊ธฐ
document.querySelector("hi").parentNode
//์์ ๋
ธ๋ ์ ๊ฑฐ (๋ถ๋ชจ๋ body)
body.removeChild(์์๋
ธ๋);
์์
for(item of items){
item.addEventListener("click",function(){
this.parentNode.removeChild(this);
});
}
this ์ฌ์ฉ์ ์ฃผ์ ์
this๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
๋จ, ํจ์๋ฅผ ํ์ดํ ํจ์๋ก ์์ฑํ ๊ฒฝ์ฐ this๋ window๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํจ๋ค
ํด๋ฆญํ ๋์์ this๋ผ๋ ์์ฝ์ด๋ก ์ฌ์ฉํ๋ ค๋ฉด ์ต๋ช ํ๋ญ ํ์์ผ๋ก ์ง์ ํ ๊ฒ!
์ค์ต
click์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ๋ฒ ๋ฐ์ํด๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ ํ ๋ฒ๋ง ์คํํ๋ ๋ฐฉ๋ฒ
~.addEventListener("click",()=>{
~,{once:true});
'๊ณต๋ถ ๊ธฐ๋ก โ๏ธ > Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| JS-Do it! JS - #8์ผ (09,10) (0) | 2023.03.23 |
|---|---|
| JS-Do it! JS - #7์ผ์ฐจ (08) (0) | 2023.03.23 |
| JS-Do it! JS - #5์ผ์ฐจ (0) | 2023.03.21 |
| JS-Do it! JS - #4์ผ์ฐจ (0) | 2023.03.18 |
| JS-Do it! JS - #2์ผ์ฐจ (2) | 2023.03.15 |