๐Ÿ“Web Developing/JavaScript ๊ธฐ์ดˆ

DOM์—์„œ ๋…ธ๋“œ ์ถ”๊ฐ€-์‚ญ์ œํ•˜๊ธฐ

Hush 2022. 6. 25. 21:59

๋…ธ๋“œ ๋ฆฌ์ŠคํŠธ๋ž€

DOM์—์„œ ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋…ธ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๋…ธ๋“œ ๋ฆฌ์ŠคํŠธ๋ž€ ๋ฌด์—‡์ผ๊นŒ?

DOM์— ์ ‘๊ทผํ•  ๋•Œ querySelectorAll() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋…ธ๋“œ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ ๋…ธ๋“œ ์ •๋ณด๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ €์žฅํ•œ ๊ฒƒ์ด ๋…ธ๋“œ ๋ฆฌ์ŠคํŠธ์ด๋‹ค.

๋ฐฐ์—ด๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.

 

ํ…์ŠคํŠธ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

์—ฌ๊ธฐ์—์„œ๋Š” [๋” ๋ณด๊ธฐ] ๋งํ‚๋ฅผ ํด๋ฆญํ•˜๋ฉด ๊ทธ ์•„๋ž˜์— ๊ฐ„๋‹จํ•œ ํ…์ŠคํŠธ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ๋‹ค.

๋ฌธ์„œ์—๋Š” ๋‹จ์ˆœํžˆ <p> ํƒœ๊ทธ ํ•˜๋‚˜๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ๋ณด์ด์ง€๋งŒ DOM์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

1. ์š”์†Œ ๋งŒ๋“ค๊ธฐ - createElement() ๋ฉ”์„œ๋“œ

DOM์— ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ํ•  ์ผ์€ ์š”์†Œ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋Š” createElement()์ธ๋ฐ ๊ด„ํ˜ธ ์•ˆ์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.

document.reateElement(๋…ธ๋“œ๋ช…)

์˜ˆ๋ฅผ ๋“ค์–ด ์ƒˆ๋กœ์šด p ์š”์†Œ๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

var newP = document.createElement("p");

 

 

ํ•˜์ง€๋งŒ createElement() ๋ฉ”์„œ๋“œ๋Š” ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค ๋ฟ ์•„์ง ์›น ๋ฌธ์„œ์— ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

์ด์ œ <p> ํƒœ๊ทธ์˜ ๋‚ด์šฉ์— ํ•ด๋‹นํ•˜๋Š” ํ…์ŠคํŠธ ๋…ธ๋“œ๋„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

 

2. ํ…์ŠคํŠธ ๋…ธ๋“œ ๋งŒ๋“ค๊ธฐ - createTextNode() ๋ฉ”์„œ๋“œ

์ƒˆ๋กœ์šด ์š”์†Œ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด ๊ทธ๋‹ค์Œ์€ ๋‚ด์šฉ์„ ๋‹ด๋Š” ํ…์ŠคํŠธ ๋…ธ๋“œ๋ฅผ ์ž์‹ ๋…ธ๋“œ๋กœ ๋งŒ๋“ค์–ด ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

ํ…์ŠคํŠธ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฉ”์„œ๋“œ๋Š” createTextNode()์ด๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

document.createTextNode(ํ…์ŠคํŠธ);

์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“  p ์š”์†Œ์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ์ด ์žˆ๋Š” ํ…์ŠคํŠธ ๋…ธ๋“œ๋Š” txtNode ๋ณ€์ˆ˜๋กœ ์ €์žฅํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ DOM ํŠธ๋ฆฌ์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค.

 

3. ์ž์‹ ๋…ธ๋“œ ์—ฐ๊ฒฐํ•˜๊ธฐ- appendChild() ๋ฉ”์„œ๋“œ

์ง€๊ธˆ๊นŒ์ง€ ์ƒˆ๋กœ์šด p ๋…ธ๋“œ(newP)์™€ ์‚ฌ์šฉํ•  ํ…์ŠคํŠธ ๋…ธ๋“œ(txtNode)๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

์•„์ง๊นŒ์ง€๋Š” ๋…ธ๋“œ๋ฅผ ๋งŒ๋“  ์ƒํƒœ์ด๋ฉฐ ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์ž์‹ ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค.

appendChild() ๋ฉ”์„œ๋“œ๋Š” ํ…์ŠคํŠธ ๋…ธ๋“œ๋‚˜ ์†์„ฑ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“  ํ›„ ์š”์†Œ ๋…ธ๋“œ์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

์ด๋•Œ appendChild() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์—ฐ๊ฒฐํ•˜๋Š” ๋…ธ๋“œ๋Š” ์ž์‹ ๋…ธ๋“œ ์ค‘ ๋งจ ๋์— ์ถ”๊ฐ€๋œ๋‹ค.

๋ถ€๋ชจ๋…ธ๋“œ.appendChild(์ž์‹๋…ธ๋“œ)

๋‹ค์Œ์€ ํ…์ŠคํŠธ ๋…ธ๋“œ txtNode๋ฅผ ์š”์†Œ ๋…ธ๋“œ newP์˜ ์ž์‹ ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐํ•˜๊ณ , newP ๋…ธ๋“œ๋ฅผ ๋‹ค์‹œ <div di="info"></div>์˜ ์ž์‹ ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.

newP.appendChild(txtNode);
document.getElementById("info").appendChild(newP);

 

4. ์ „์ฒด ์†Œ์Šค ์ฝ”๋“œ ์™„์„ฑํ•˜๊ธฐ

์ง€๊ธˆ๊นŒ์ง€ ์š”์†Œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์„œ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜์œผ๋‹ˆ ์ „์ฒด ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ๋‹ค.

๋‹ค์Œ ์—์ œ๋ฅผ ๋ณด๋ฉด [๋” ๋ณด๊ธฐ] ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋Š” ๋ถ€๋ถ„์— addP() ํ•จ์ˆ˜์™€ this.onclick='' ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

์ด๊ฒƒ์€ addP() ํ•จ์ˆ˜๊ฐ€ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.

๋งŒ์ผ ์ด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฉด ๋งํฌ๋ฅผ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค p ์š”์†Œ๊ฐ€ ๊ณ„์† ์ถ”๊ฐ€๋œ๋‹ค.

<!DOCTYPE html>
<html lang="ko">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>innerText, innerHTML ํ”„๋กœํผํ‹ฐ</title>
</head>
<body>
	<div id="container">
		<h1>DOM์„ ๊ณต๋ถ€ํ•ฉ์‹œ๋‹ค</h1>
		<a href="#" onclick="addP(); this.onclick='';">๋” ๋ณด๊ธฐ</a>
		<div id="info"></div>
	</div>

	<script>
		function addP() {
			var newP = document.createElement("p");
			var txtNode = document.createTextNode("DOM์€ document object model์˜ ์ค„์ž„๋ง์ด๋‹ค.");
			newP.appendChild(txtNode);
			document.getElementById("info").appendChild(newP);
		}
	</script>
</body>
</html>

 

์†์„ฑ๊ฐ’์ด ์žˆ๋Š” ์ƒˆ๋กœ์šด ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

HTML ํƒœ๊ทธ์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ ์›น ์š”์†Œ๋ฅผ ์ œ์–ดํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋งŒ๋“ค๋ฉด ๊ทธ์™€ ๊ด€๋ จ๋œ ์†์„ฑ ๋…ธ๋“œ๋„ ๋งŒ๋“ค์–ด์„œ ์ž์‹ ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

์•ž์œผ ์˜ˆ์ œ์— ์ด์–ด์„œ '๋” ๋ณด๊ธฐ' ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๊ทธ ์•„๋ž˜์— ํ…์ŠคํŠธ๋Š” ๋ฌผ๋ก  ์ด๋ฏธ์ง€๊นŒ์ง€ ํ‘œ์‹œ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€๋กœ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ๋‹ค.

์›น ๋ฌธ์„œ์—์„œ ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ ์ฃผ๋ ค๋ฉด img ์š”์†Œ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ ํ›„ src ์†์„ฑ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์ž์‹ ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

 

1. ์š”์†Œ ๋…ธ๋“œ ๋งŒ๋“ค๊ธฐ - createElement() ๋ฉ”์„œ๋“œ

ํ…์ŠคํŠธ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋˜ ๋ฐฉ๋ฒ•๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ createElement() ๋ฉ”์„œ๋“œ๋ฅผ ์ƒˆ์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ ๋‹ค.

var newImg = document.createElement("img")

 

2. ์†์„ฑ ๋…ธ๋“œ ๋งŒ๋“ค๊ธฐ - createAttribute() ๋ฉ”์„œ๋“œ

img ์š”์†Œ๋Š” src ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ ์ด๋ฏธ์ง€ ํŒŒ์ผ์œผ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด์•ผ ๋ธŒ๋ผ์šฐ์ €์— ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ž˜์„œ createAttribute() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์†์„ฑ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

document.createAttribute(์†์„ฑ๋ช…)

๋‹ค์Œ์€ ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•  src์™€ ๋Œ€์ฒด ํ…์ŠคํŠธ๋ฅผ ์ง€์ •ํ•  alt๋ฅผ ์œ„ํ•ด ์†์„ฑ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.

์†์„ฑ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“  ํ›„ ์†์„ฑ๊ฐ’์€ value ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ง€์ •ํ•œ๋‹ค.

var srcNode = document.createAttribute("src");
var altNode = document.createAttribute("alt");
srcNode.value = "images/dom.jpg";
altNode.value = "๋” ํŠธ๋ฆฌ ์˜ˆ์ œ ์ด๋ฏธ์ง€";

 

3. ์†์„ฑ ๋…ธ๋“œ ์—ฐ๊ฒฐํ•˜๊ธฐ - setAttributeNode() ๋ฉ”์„œ๋“œ

์†์„ฑ ๋…ธ๋“œ๋Š” ์š”์†Œ ๋…ธ๋“œ์˜ ์ž์‹์œผ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

์ƒˆ๋กœ ๋งŒ๋“  ์†์„ฑ ๋…ธ๋“œ๋ฅผ ์š”์†Œ ๋…ธ๋“œ์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด setAttributeNode() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์š”์†Œ๋ช….setAttributeNode(์†์„ฑ๋…ธ๋“œ)

๋งŒ์•ฝ ์ถ”๊ฐ€ํ•  ์†์„ฑ์ด ์š”์†Œ ๋…ธ๋“œ์— ์ด๋ฏธ ๋“ค์–ด ์žˆ๋‹ค๋ฉด ๊ธฐ์กด ์†์„ฑ ๋…ธ๋“œ๋ฅผ ์ƒˆ ์†์„ฑ ๋…ธ๋“œ๋กœ ๋Œ€์ฒดํ•œ๋‹ค.

 

๋‹ค์Œ์€ newImg๋ผ๋Š” ์ƒˆ ์ด๋ฏธ์ง€ ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  srcNode๋ผ๋Š” ์†์„ฑ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ž‘์„ฑํ•œ ๊ฒƒ์ด๋‹ค.

๋‹ค๋ฅธ ์†์„ฑ๋„ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์–ผ๋งˆ๋“ ์ง€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

newImg.setAttributeNode(srcNode);

 

4. ์ž์‹ ๋…ธ๋“œ ์—ฐ๊ฒฐํ•˜๊ธฐ - appendChild() ๋ฉ”์„œ๋“œ

์†์„ฑ ๋…ธ๋“œ๊นŒ์ง€ ์—ฐ๊ฒฐํ–ˆ์ง€๋งŒ ์•„์ง img ์š”์†Œ๋Š” ๋งŒ๋“ค์–ด ๋†“๊ธฐ๋งŒ ํ•œ ์ƒํƒœ์ด๋‹ค.

img ์š”์†Œ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋ ค๋ฉด ์›น ๋ฌธ์„œ์˜ DOM์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ ค๋ฉด appendChild() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•„์š”ํ•œ ์œ„์น˜์— ์ž์‹ ๋…ธ๋“œ๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค

๋‹ค์Œ์€ #info ์œ„์น˜์— ์ƒˆ๋กœ ๋งŒ๋“  img ์š”์†Œ๋ฅผ ์ž์‹ ์š”์†Œ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.

document.getElementById("info").appendChild(newImg);

 

+์ž์‹ ๋…ธ๋“œ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•

appendChild๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒˆ๋กœ ์ž์‹์ด ๋˜๋Š” ๋…ธ๋“œ๊ฐ€ ๊ธฐ์กด ์ž์‹๋…ธ๋“œ ๋’ค์— ๋ถ™์—ฌ์ ธ์„œ ๋…ธ๋“œ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

๋งŒ์•ฝ ๊ธฐ์กด ์ž์‹๋…ธ๋“œ ๋’ค๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ˆœ์„œ๋กœ ์ƒˆ๋กœ์šด ์ž์‹ ๋…ธ๋“œ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

insertBefore ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

insertBefore ๋ฉ”์„œ๋“œ๋Š” ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž…ํ•  ์œ„์น˜๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ž์‹์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ๋กœ ๋“ฑ๋ก์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

parentNode.appendChild(newNode, parentNode.childNodes[0])

 

๋…ธ๋“œ ์‚ญ์ œํ•˜๊ธฐ

๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ๊ธฐ์–ตํ•ด ๋‘˜ ๊ฒƒ์€ ๋ถ€๋ชจ ๋…ธ๋“œ์—์„œ ์ž์‹ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ฆ‰, ์‚ญ์ œํ•ด์•ผ ํ•  ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ ๋ถ€๋ชจ ๋…ธ๋“œ ๋จผ์ € ์ฐพ์•„์•ผ ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฉ”์„œ๋“œ ์™ธ์— ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

parentNode ํ”„๋กœํผํ‹ฐ

DOM ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ๋Š” ๋ฐ”๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋จผ์ € ๋ถ€๋ชจ ๋…ธ๋“œ์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ ค๋ฉด ์‚ญ์ œํ•  ๋…ธ๋“œ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.

parentNode ํ”„๋กœํผํ‹ฐ๋Š” ํ˜„์žฌ ๋…ธ๋“œ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ์— ์ ‘๊ทผํ•ด์„œ ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ์š”์†Œ ๋…ธ๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋…ธ๋“œ.parentNode

 

removeChild() ๋ฉ”์„œ๋“œ

์ด๋ฆ„์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ž์‹ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋ถ€๋ชจ ๋…ธ๋“œ๋งŒ ์ฐพ๋Š”๋‹ค๋ฉด removeChild()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•˜๋‹ค.

๋ถ€๋ชจ๋…ธ๋“œ.removeChild(์ž์‹๋…ธ๋“œ)

์˜ˆ๋ฅผ ๋“ค์–ด li ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด li์˜ ๋ถ€๋ชจ ๋…ธ๋“œ์—์„œ ์‚ญ์ œํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

li.parentNode.removeChild(li)