๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ– WELL-DONE Project/Javascript

๋ธŒ๋ผ์šฐ์ €์—์„œ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋™์ž‘ ์•Œ์•„๋ณด๊ธฐ.1

ํ˜„์žฌ Codeit | JavaScript ์ค‘๊ธ‰๊ณผ์ •์„ ์ค‘ 'Browser์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋™์ž‘'๋ถ€๋ถ„์„ ํ•™์Šต ์ค‘์ด๋‹ค. ์ด ๋ถ€๋ถ„์—์„œ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋œ ์ •๋ณด์™€ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ๋‚ด์šฉ ๊ทธ๋ฆฌ๊ณ  ๋ฐฐ์šด ๋‚ด์šฉ๊ณผ ๊ด€๋ จ๋œ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ์ฝ”๋“œ๋“ฑ์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

๐Ÿ™„โ‰๋ธŒ๋ผ์šฐ์ €๋„ ๊ฐ์ฒด์ด๋‹ค?!

๊ฐ•์˜ ๋‚ด์šฉ์—์„œ ์ด๋Ÿฐ ๋ง์„ ๋“ฃ๊ณ  ๊ด€๋ จ ๋‚ด์šฉ์„ ๊ฒ€์ƒ‰ํ•ด๋ณด์•˜๋Š”๋ฐ, ๋‹จ์ˆœํžˆ '๋ธŒ๋ผ์šฐ์ €=๊ฐ์ฒด'๊ฐ€ ์•„๋‹Œ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š”๊ฒŒ ๋งž๋Š”๊ฑฐ ๊ฐ™๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋“ค์€ ๋ฌด์—‡์ผ๊นŒ?

  • window (์ตœ์ƒ์œ„ ๊ฐ์ฒด)
  • location
  • navigator
  • history
  • screen
  • document (DOM์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค)

์ด ์œ„์˜ ๊ฐ์ฒด๋“ค์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•„๋‹Œ ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์ œ๊ณตํ•˜๋Š”, ์ฆ‰ ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋ผ๊ณ  ์ •์˜ํ•ด๋„ ๊ดœ์ฐฎ์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ด ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ด ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์–‘ํ•œ ๋™์ž‘์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฑฐ ๊ฐ™๋‹ค.

โœ”window ๊ฐ์ฒด๋ž€?

์›น๋ธŒ๋ผ์šฐ์ €์˜ ์ตœ์ƒ์˜ ๊ฐ์ฒด์ด์ž ์ „์—ญ ๊ฐ์ฒด์ด๋‹ค.(global-object๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค)
ํ•œ๋งˆ๋””๋กœ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋Œ€๋ณ€ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ widnow ๊ฐ์ฒด์ธ ๊ฒƒ์ด๋‹ค.

console.log(window); //outputs:์ฝ˜์†”๋กœ ํ™•์ธํ•˜๋ฉด ์ •๋ง ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์†Œ๋“œ๋“ค์ด ์ถœ๋ ฅ๋œ๋‹ค.

์œ„์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” console์—ญ์‹œ window ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ์ธ ๊ฒƒ์ด๋‹ค. ๊ตณ์ด consoleํ”„๋กœํผํ‹ฐ ์•ž์— window.console.log() ์ฒ˜๋Ÿผ window ๊ฐ์ฒด๋ฅผ ์•ž์— ๋ถ™์ด์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์–ด๋””์„œ๋“  ์ „์—ญ๊ฐ์ฒด์ธ window๋ฅผ ํ’ˆ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— console.log()๋ผ๊ณ  ์ณ๋„ ์ž๋™์œผ๋กœ windowํ”„๋กœํผํ‹ฐ์ธ์ง€ ์ธ์‹ํ•œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด๋“ค์„ ๋‹ค๋ฃจ๊ธฐ ๊ต‰์žฅํžˆ ์šฉ์ดํ•œ ์–ธ์–ด์ด๋‹ค. ๊ทธ๋Ÿฐ๋งŒํผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋“ค๋กœ ๋‹ค์–‘ํ•˜๊ฒŒ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•  ๊ฑฐ ๊ฐ™๋‹ค.

โœ”DOM(Document Object Model)์ด๋ž€?

์ƒ๋‹จ์— ๋‚˜์˜จ ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด ์ค‘ ํ•˜๋‚˜์ธ 'document ๊ฐ์ฒด'์ด๋‹ค.
์—ฌ๊ธฐ์„œ์˜ 'document ๊ฐ์ฒด'๋ž€ ์›น๋ธŒ๋ผ์šฐ์ €๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ปจํ…์ธ ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์›นํŽ˜์ด์ง€์˜ HTML๋ฌธ์„œ(ํŒŒ์ผ)์„ ํ•ด์„ํ•˜๋Š”๋ฐ ๋ฐ”๋กœ ์ด๋•Œ ์›นํŽ˜์ด์ง€์˜ DOM ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ์‹œ์ผœ์ค€๋‹ค.

์‹ค์งˆ์ ์ธ HTML๋ฌธ์„œ์˜ ๊ฐ’๋“ค์ด ๋‹ด๊ฒจ์ง„ DOM ๊ฐ์ฒด์ด๊ธฐ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” document์˜ ๋‹ค์–‘ํ•œ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์†Œ๋“œ๋“ค์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋™์ž‘๋“ค์˜ ์ปจํŠธ๋กค์ด ๊ฐ€๋Šฅํ•ด์ง€๋Š” ๊ฒƒ์ด๋‹ค.

console.log(document); //outputs:window๊ฐ์ฒด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์–‘ํ•œ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์†Œ๋“œ๋“ค์ด ์ถœ๋ ฅ๋œ๋‹ค.

โœ”DOM ํŠธ๋ฆฌ๋ž€?

DOM๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด์„œ์•ˆ์˜ ๊ฐ ํƒœ๊ทธ ๊ตฌ์กฐ์™€ ๊ฐ’๋“ค์„ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค. ์—ฌ๊ธฐ์„œ์˜ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ž€ HTML๋ฌธ์„œ์™€ ๋˜‘๊ฐ™์ด '๋ถ€๋ชจ'์™€ '์ž์‹'์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

<!DOCTYPE html>
<html lang="ko">
  <head>
    <title>JS with me</title>
  </head>
  <body>
    <h1>Hello JJuice</h1>
    <p>Welcome</p>
  </body>
</html>

์œ„์™€ ๊ฐ™์€ html ์ฝ”๋“œ๋ฅผ DOM๊ฐ์ฒด๋กœ ์ƒ์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์€
๋ธŒ๋ผ์šฐ์ €(window) >> document >> html >> head,body ์™€ ๊ฐ™์€ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋˜์–ด ์žˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ด๋Ÿฌํ•œ ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ๋ถ€๋ชจ,์ž์‹ ์š”์†Œ๋“ค์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃฌ๋‹ค.
๋ธŒ๋ผ์šฐ์ €(window)๊ฐ์ฒด >> document๊ฐ์ฒด >> html๊ฐ์ฒด >> head,body๊ฐ์ฒด
์ด ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋ฅผ ๋…ธ๋“œ(Node)๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

HTML๋ฌธ์„œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋…ธ๋“œ๋Š”

  • ๋ฌธ์„œ ๋…ธ๋“œ(document node)
  • ์š”์†Œ ๋…ธ๋“œ(element node)
  • ์†์„ฑ ๋…ธ๋“œ(attribute node)
  • ํ…์ŠคํŠธ ๋…ธ๋“œ(text node)
  • ์ฃผ์„ ๋…ธ๋“œ(comment node)

์ด๋ ‡๊ฒŒ 5๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ์ด ์ค‘์— ๋Œ€ํ‘œ์ ์ธ ๋…ธ๋“œ์ธ '์š”์†Œ ๋…ธ๋“œ'์™€ 'ํ…์ŠคํŠธ ๋…ธ๋“œ'์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ณ  ๋„˜์–ด๊ฐ€์ž.

๋…ธ๋“œ ์ข…๋ฅ˜ ์„ค๋ช… EX
์š”์†Œ ๋…ธ๋“œ ๋ชจ๋“  HTML ์š”์†Œ๋ฅผ ๋งํ•œ๋‹ค.์†์„ฑ ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋…ธ๋“œ head,title,body,h1๋“ฑ
ํ…์ŠคํŠธ ๋…ธ๋“œ ๋ชจ๋“  ํ…์ŠคํŠธ๋ฅผ ๋งํ•œ๋‹ค. title์š”์†Œ ๋…ธ๋“œ ์•ˆ์˜ JS with me ๊ฐ’

๋Œ€๋ถ€๋ถ„์˜ DOM๊ฐ์ฒด๋Š” ์š”์†Œ(Element) ๋…ธ๋“œ์™€ ํ…์ŠคํŠธ(text) ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด ์žˆ๋‹ค.

๊ทธ ๋‹ค์Œ์œผ๋กœ ๊ฐ ๋…ธ๋“œ ๊ฐ„์€ ๊ด€๊ณ„๋กœ ๋งบ์–ด์ ธ์žˆ๋‹ค.
๋…ธ๋“œ๊ฐ„์˜ ๊ด€๊ณ„์˜ ์ข…๋ฅ˜ ํฌ๊ฒŒ 4๊ฐ€์ง€์ด๋‹ค.

  1. ๋ฃจํŠธ ๋…ธ๋“œ(Root node)
  2. ๋ถ€๋ชจ ๋…ธ๋“œ(Parent node)
  3. ์ž์‹ ๋…ธ๋“œ(Child Node)
  4. ํ˜•์ œ ๋…ธ๋“œ(Sibling Node)

๋ณดํ†ต์˜ ์›นํŽ˜์ด์ง€ HTML ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ๊ฐ€์žฅ ์ƒ์œ„๋Š” ๋Š” ๋ฃจํŠธ ๋…ธ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ถ€๋ชจ,์ž์‹,ํ˜•์ œ ๋…ธ๋“œ๋Š” ์˜ค์ง ๋‹จ ํ•˜๋‚˜์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋งŒ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ์š”์†Œ ๋…ธ๋“œ๋Š” ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

<body>
    <div>
        <h1>Hello</h1>
        <p>JJuice</p>
    </div>
</div>

์œ„์˜ ์ฝ”๋“œ๋ฅผ ๊ธฐ์ค€์„ ๋ดค์„๋•Œ

  • <body>์˜ ์ž์‹ ๋…ธ๋“œ๋Š” <div>์ด๋‹ค.
  • <h1>์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋Š” <div>์ด๋‹ค.
  • <div>์˜ ์ž์‹ ๋…ธ๋“œ์ธ <h1>๊ณผ <p>์ด ๋‘˜์˜ ๋…ธ๋“œ๋Š” ํ˜•์ œ ๋…ธ๋“œ์ด๋‹ค.

DOMํŠธ๋ฆฌ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋‹ค์–‘ํ•œ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋…ธ๋“œ์— ์ ‘๊ทผํ•ด๋ณด์ž.

<html>
<head>
    <title>JS ๋…ธ๋“œ ์ ‘๊ทผํ•ด๋ณด๊ธฐ</title>
</head>
<body>
    <h1>์˜ค๋ฒ„์›Œ์น˜ ์บ๋ฆญํ„ฐ ์•Œ์•„๋ณด๊ธฐ</h1>
    <ul id="tanker-list">
        <li>๋ผ์ธํ•˜๋ฅดํŠธ</li>
        <li>์ž๋ฆฌ์•ผ</li>
        <li>์‹œ๊ทธ๋งˆ</li>  
    </ul>
    <script src='index.js'></script>
</body>
</html>

index.jsํŒŒ์ผ์—์„œ ์›ํ•˜๋Š” ๋…ธ๋“œ๋กœ ์ ‘๊ทผํ•ด ๊ฒฐ๊ณผ๊ฐ’์„ ์ถœ๋ ฅ์‹œ์ผœ๋ณด์ž.

โ–  ๋ถ€๋ชจ,์ž์‹,ํ˜•์ œ ๋…ธ๋“œ ๊ด€๊ณ„๋ฅผ ์ด์šฉํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ์ด์šฉํ•ด ๋…ธ๋“œ ์ ‘๊ทผํ•ด๋ณด๊ธฐ.

  • ๋ถ€๋ชจ ์š”์†Œ ํ”„๋กœํผํ‹ฐ : parentElement
  • ์ž์‹ ์š”์†Œ ํ”„๋กœํผํ‹ฐ : children, firstElementChild, lastElementChild
  • ํ˜•์ œ ์š”์†Œ ํ”„๋กœํผํ‹ฐ : previousElementSibling , nextElementSibling
//index.js
//1.์ž์‹ ์š”์†Œ ํ”„๋Ÿฌํผํ‹ฐ
const tankerList = document.querySelector('#tanker-list');
console.log(tankerList.children[1]); //outputs: <li>์ž๋ฆฌ์•ผ</li>
console.log(tankerList.lastElementChild); //outputs: <li>์‹œ๊ทธ๋งˆ<li>

//2.๋ถ€๋ชจ ์š”์†Œ ํ”„๋กœํผํ‹ฐ
console.log(tankerList.parentElement); //outputs: <body>...</body>

//3.ํ˜•์ œ ์š”์†Œ ํ”„๋กœํผํ‹ฐ
console.log(tankerList.previousElementSibling); //outputs:<h1>์˜ค๋ฒ„์›Œ์น˜ ์บ๋ฆญํ„ฐ ์•Œ์•„๋ณด๊ธฐ</h1>
console.log(tankerList.nextElementSibling); //outputs:<script...></script>
  • <ul id="tanker-list">์˜ ์ž์‹๋“ค์€ <li></li> x 3๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์˜ index์™€ ๊ฐ™์ด ๋Œ€๊ฐ€๋กœ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด ๋…ธ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ถœ๋ ฅ๊ฐ’์€ ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ ๋…ธ๋“œ(element node)๋ฅผ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ด๋‹ค.
  • ํ˜น์‹œ๋‚˜ ์š”์†Œ ๋…ธ๋“œ๊ฐ€ ์•„๋‹Œ ํ…์ŠคํŠธ ๋…ธ๋“œ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด textContentํ”„๋กœํผํ‹ฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์š”์†Œ ๋…ธ๋“œ๊ฐ€ ์•„๋‹Œ ํ…์ŠคํŠธ ๋…ธ๋“œ๊ฐ’๋งŒ์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
console.log(tankerList.firstElementChild.textContent); //outputs:๋ผ์ธํ•˜๋ฅดํŠธ
  • ์ž์‹,๋ถ€๋ชจ,ํ˜•์ œ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์„œ ๋…ธ๋“œ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
console.log(tankerList.children[1].previousElementSibling); //outputs:<li>๋ผ์ธํ•˜๋ฅดํŠธ</li>

โ–  innerHTML, outerHTML, textContent ํ”„๋กœํผํ‹ฐ๋ฅผ ์ด์šฉํ•ด ๋…ธ๋“œ ์ ‘๊ทผํ•ด๋ณด๊ธฐ.

const tankerList = document.querySelector('#tanker-list');
console.log(tankerList.innerHTML); //outputs: <li>...</li> x 3
console.log(tankerList.outerHTML); //outputs: <ul id='...'><li>...</li> x3 </ul>
console.log(tankerList.textContent); //outpust: ๋ผ์ธํ•˜๋ฅดํŠธ ์ž๋ฆฌ์•ผ ์‹œ๊ทธ๋งˆ

์œ„์˜ ๊ฒฐ๊ณผ๊ฐ’์— ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด

  • innerHTML : ์ ‘๊ทผํ•œ ๋…ธ๋“œ ์ž์‹๋“ค์˜ ์š”์†Œ ๋…ธ๋“œ๊ฐ’ + ํ…์ŠคํŠธ ๋…ธ๋“œ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.(์š”์†Œ์•ˆ์˜ ์ค„๋ฐ”๊ฟˆ์ด๋‚˜ ๋“ค์—ฌ์“ฐ๊ธฐ ์ „๋ถ€ ๊ฐ€์ ธ์˜จ๋‹ค)
  • outerHTML : ์ ‘๊ทผํ•œ ๋…ธ๋“œ ์š”์†Œ ๋…ธ๋“œ๊ฐ’ + ์ž์‹๋“ค์˜ ์š”์†Œ ๋…ธ๋“œ๊ฐ’ + ํ…์ŠคํŠธ ๋…ธ๋“œ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.(์š”์†Œ์•ˆ์˜ ์ค„๋ฐ”๊ฟˆ์ด๋‚˜ ๋“ค์—ฌ์“ฐ๊ธฐ ์ „๋ถ€ ๊ฐ€์ ธ์˜จ๋‹ค)
  • textContent : ์ ‘๊ทผํ•œ ๋…ธ๋“œ ์ž์‹๋“ค์˜ ์š”์†Œ ๋…ธ๋“œ๊ฐ’์•ˆ์˜ ํ…์ŠคํŠธ ๋…ธ๋“œ๊ฐ’๋งŒ์„ ๊ฐ€์ ธ์˜จ๋‹ค.

์œ„ 3๊ฐœ์˜ ํ”„๋กœํผํ‹ฐ๋Š” ๋…ธ๋“œ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ ๋ง๊ณ ๋„ ๋…ธ๋“œ๊ฐ’์˜ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

tankerList.innerHTML = '<li>๋ ˆํ‚น๋ณผ</li>'; //๊ธฐ์กด์˜ 3๊ฐœ์˜ <li>๊ฐ’์ด ์‚ฌ๋ผ์ง€๊ณ  ์ƒˆ๋กœ์šด innerHTML๊ฐ’์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.
tankerList.outerHTML = '<li>๋””๋ฐ”</li>'; //๊ธฐ์กด์˜ <ul id...><li>..</li></ul> ๋…ธ๋“œ๊ฐ€ ์ „๋ถ€ ์‚ฌ๋ผ์ง€๊ณ  outerHTML ๊ฐ’์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.
tankerList.textContent = '<li>๋กœ๋“œํ˜ธ๊ทธ</li>'; //โ›”์ฃผ์˜ํ• ์ :textContent ํ”„๋กœํผํ‹ฐ๊ฐ’์— ํƒœ๊ทธ,์ฆ‰ ๊ธฐ๋ณธ ์š”์†Œ๊ฐ’์ด ๋“ค์–ด๊ฐ€๋ฉด ์š”์†Œ๊ฐ€ ์•„๋‹Œ ํ…์ŠคํŠธ๋กœ ์ธ์‹ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์‹ค์ œ ๋ณด์—ฌ์ง€๋Š” ๊ฐ’์€ '๋กœ๋“œํ˜ธ๊ทธ'๊ฐ€ ์•„๋‹Œ '<li>๋กœ๋“œํ˜ธ๊ทธ</li>`๊ฐ’ ์ „์ฒด๊ฐ€ ๋ณด์—ฌ์ง„๋‹ค.

ํ˜น์‹œ๋‚˜ ๊ธฐ์กด์˜ <li>๊ฐ’์„ ์œ ์ง€ํ•œ์ฑ„ ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

//<li>์‹œ๊ทธ๋งˆ</li> ๋‹ค์Œ์— ๊ฐ’ ์ถ”๊ฐ€
tankerList.innerHTML = tankerList.innerHTML + '<li>๋ ˆํ‚น๋ณผ</li>';
tankerList.innerHTML += '<li>๋ ˆํ‚น๋ณผ</li>';

//<li>๋ผ์ธํ•˜๋ฅดํŠธ</li> ์•ž์— ๊ฐ’ ์ถ”๊ฐ€
tankerList.innerHTML = '<li>๋ ˆํ‚น๋ณผ</li>' + tankerList.innerHTML;

outerHTML ๊ฐ™์€ ๊ฒฝ์šฐ ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ ๋…ธ๋“œ๋ถ€ํ„ฐ ์ž์‹๋“ค์˜ ๋…ธ๋“œ๊นŒ์ง€ ๊ฐ’์ด ์ˆ˜์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค.

//๊ธฐ์กด์˜ <ul id='#tanker-list'>๋Š” ์‚ญ์ œ๋œ๋‹ค.
tankerList.outerHTML = '<li>์œˆ์Šคํ„ด</li>';

//์ƒˆ๋กœ์šด <ul>๋ฆฌ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
tankerList.outerHTML += '<ul><li>๋””๋ฐ”</li><li>๋ ˆํ‚น๋ณผ</li></ul>';

'๋ธŒ๋ผ์šฐ์ €์—์„œ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋™์ž‘ ์•Œ์•„๋ณด๊ธฐ.1' ์ฒซ ๋ฒˆ์งธ ํฌ์ŠคํŠธ๋Š” ์—ฌ๊ธฐ์—์„œ ๋งˆ๋ฌด๋ฆฌ ํ•˜๊ณ  ๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ๋Š” ์ง์ ‘ ์š”์†Œ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ / ๋…ธ๋“œ ์‚ญ์ œ์™€ ์ด / HTML ํ‘œ์ค€ ์†์„ฑ(attribute) ๋‹ค๋ฃจ๊ธฐ / CSS Style ๋‹ค๋ฃจ๊ธฐ / HTML ๋น„ํ‘œ์ค€ ์†์„ฑ ๋‹ค๋ฃจ๊ธฐ๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋™์ž‘ ์•Œ์•„๋ณด๊ธฐ.2