๊ณต๋ถ€ ๊ธฐ๋ก โœ๏ธ/Javascript

JS-Do it! JS - #6์ผ์ฐจ

๋ฒ„๋‘˜ 2023. 3. 21. 14:32

๋ฒ”์œ„: 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