์ƒˆ์†Œ์‹

Languages/Java Script

[Js] Node ๊ฐ์ฒด | Node ๊ด€๊ณ„ API

  • -
๋ฐ˜์‘ํ˜•

๋ชจ๋“  ํฌ์ŠคํŒ…์€ ์ธํ”„๋Ÿฐ [์ƒํ™œ์ฝ”๋”ฉ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ•์˜์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ

์ถœ์ฒ˜๋Š” ์•„๋ž˜์˜ ์ฃผ์†Œ๋กœ "egoing Lee"๋‹˜์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. 

์ƒ์—…์ ์ธ ์˜๋„๊ฐ€ ์•„๋‹Œ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋†“๋Š” ๋ชฉ์ ์œผ๋กœ ํฌ์ŠคํŒ… ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

www.inflearn.com/course/javascript-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B0%95%EC%A2%8C#

 

์›น๋ธŒ๋ผ์šฐ์ € Javascript (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ) - ์ธํ”„๋Ÿฐ

์ƒํ™œ์ฝ”๋”ฉ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ•์ขŒ ์ž…๋‹ˆ๋‹ค. ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ง์ ‘ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๊ณต๋ถ€ํ•ด ๋ด…๋‹ˆ๋‹ค. ์ดˆ๊ธ‰ ์›น ๊ฐœ๋ฐœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด JavaScript ์˜จ๋ผ์ธ ๊ฐ•์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ•์ขŒ

www.inflearn.com


์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ๊ฐ•์˜์˜ "Node๊ฐ์ฒด" ์ค‘ Node๊ฐ์ฒด๊ฐ•์˜์™€ Node ๊ด€๊ณ„ API ๊ฐ•์˜๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

 

Node ๊ฐ์ฒด

์†Œ๊ฐœ

Node ๊ฐ์ฒด๋Š” DOM์—์„œ ์‹œ์กฐ์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค. ์ฆ‰ ๊ฐ€์žฅ ์ตœ์ƒ์œ„์˜ ์กฐ์ƒ์„ ๋งํ•œ๋‹ค.

๋‹ค์‹œ ๋งํ•ด์„œ ๋ชจ๋“  DOM ๊ฐ์ฒด๋Š” Node ๊ฐ์ฒด๋ฅผ ์ƒ์† ๋ฐ›๋Š”๋‹ค. Node ๊ฐ์ฒด์˜ ์œ„์ƒ์„ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

 

 

 

์ฃผ์š”๊ธฐ๋Šฅ

Node ๊ฐ์ฒด์˜ ์ฃผ์š”ํ•œ ์ž„๋ฌด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

๊ด€๊ณ„ (๊ด€๊ณ„์„ฑ ๋ถ€์—ฌ)

์—˜๋ฆฌ๋จผํŠธ๋Š” ์„œ๋กœ ๋ถ€๋ชจ, ์ž์‹, ํ˜น์€ ํ˜•์ œ์ž๋งค ๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ Node๊ฐ€ ๋‹ค๋ฅธ Node์™€ ์—ฐ๊ฒฐ๋œ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” API๋ฅผ ํ†ตํ•ด์„œ ๋ฌธ์„œ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Node.childNodes
  • Node.firstChild
  • Node.lastChild
  • Node.nextSibling
  • Node.previousSibling
  • Node.contains()
  • Node.hasChildNodes()

 

๋…ธ๋“œ์˜ ์ข…๋ฅ˜

Node ๊ฐ์ฒด๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์˜ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์–ด๋–ค ์นดํ…Œ๊ณ ๋ฆฌ์— ์†ํ•˜๋Š” ๊ฒƒ์ธ์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์‹๋ณ„์ž๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 

  • Node.nodeType
  • Node.nodeName

 

๊ฐ’

Node ๊ฐ์ฒด์˜ ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” API

  • Node.nodeValue
  • Node.textContent

 

์ž์‹๊ด€๋ฆฌ

Node ๊ฐ์ฒด์˜ ์ž์‹์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ API

  • Node.appendChild()
  • Node.removeChild()

 

Node ๊ด€๊ณ„ API

Node ๊ฐ์ฒด๋Š” Node ๊ฐ„์˜ ๊ด€๊ณ„ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์ผ๋ จ์˜ API๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‹ค์Œ์€ ๊ด€๊ณ„์™€ ๊ด€๋ จ๋œ ํ”„๋กœํผํ‹ฐ๋“ค์ด๋‹ค.

  • Node.childNodes
    ์ž์‹๋…ธ๋“œ๋“ค์„ ์œ ์‚ฌ๋ฐฐ์—ด์— ๋‹ด์•„์„œ ๋ฆฌํ„ดํ•œ๋‹ค.
  • Node.firstChild
    ์ฒซ๋ฒˆ์งธ ์ž์‹๋…ธ๋“œ
  • Node.lastChild
    ๋งˆ์ง€๋ง‰ ์ž์‹๋…ธ๋“œ
  • Node.nextSibling
    ๋‹ค์Œ ํ˜•์ œ ๋…ธ๋“œ
  • Node.previousSibling
    ์ด์ „ ํ˜•์ œ ๋…ธ๋“œ

 

์•„๋ž˜๋Š” ์œ„์˜ API๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์„œ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ค€๋‹ค.

<body id="start">
<ul>
    <li><a href="./532">html</a></li> 
    <li><a href="./533">css</a></li>
    <li><a href="./534">JavaScript</a>
        <ul>
            <li><a href="./535">JavaScript Core</a></li>
            <li><a href="./536">DOM</a></li>
            <li><a href="./537">BOM</a></li>
        </ul>
    </li>
</ul>
<script>
var s = document.getElementById('start');
console.log(1, s.firstChild); // #text
var ul = s.firstChild.nextSibling
console.log(2, ul); // ul
console.log(3, ul.nextSibling); // #text
console.log(4, ul.nextSibling.nextSibling); // script
console.log(5, ul.childNodes); //text, li, text, li, text, li, text
console.log(6, ul.childNodes[1]); // li(html)
console.log(7, ul.parentNode); // body
</script>
</body>

 

๊ฐ•์˜๋ฅผ ๋ณด๋ฉด์„œ ์‹ค์Šต์„ ํ•˜๋‹ค๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด text๊ฐ€ ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ๋กœ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๋Š”  ๊ณต๋ฐฑ ํ˜น์€ ์ค„๋ฐ”๊ฟˆ๊ณผ ๊ฐ™์€ ๋ฌธ์ž๋„ ๋…ธ๋“œ๋กœ ์ฒดํฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!

 

์ด text๋ผ๋Š” ๊ฐ์ฒด๋Š” Node์˜ ํ•˜์œ„ ๊ฐ์ฒด์ค‘ CharacterData์˜ ํ•˜์œ„ ๊ฐ์ฒด์ด๋ฉฐ, ์ด ๋˜ํ•œ Node์˜ ๊ฐ์ฒด์ด๋ฏ€๋กœ Node๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” API๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— .fristChild๋ผ๋Š” ๊ฐ์ฒด๋„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.