[JavaScript] DOM

Yuhalloยท2023๋…„ 1์›” 5์ผ
1

JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
9/9
post-thumbnail

๐Ÿงก DOM

DOM(Document Object Model)์€ Document ์ฆ‰, HTML์š”์†Œ๋ฅผ ๊ฐ์ฒด(Object)์ฒ˜๋Ÿผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ(Model)์ž…๋‹ˆ๋‹ค. DOM์ด ์—†์œผ๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” HTML๊ณผ ์—‘์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. DOM์„ ์ด์šฉํ•˜๋ฉด HTML์˜ ๋ถ€๋ถ„๋“ค์— ์ ‘๊ทผํ•˜์—ฌ ๋™์ ์œผ๋กœ ์›€์ง์ด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’š DOM์— ์ ‘๊ทผํ•˜๊ธฐ

  • scriptํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด HTMLํŒŒ์ผ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ <script>์š”์†Œ๋ฅผ ๋งŒ๋‚˜๋ฉด, HTML ํ•ด์„์„ ์ž ์‹œ ๋ฉˆ์ถ”๊ณ  <script>์š”์†Œ๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. (script์š”์†Œ๋Š” ๋“ฑ์žฅ๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.) (HTMLํŒŒ์‹ฑ ๋ฌธ์„œ ์ฐธ๊ณ )

  • HTML ๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋“ค์ด๊ณ  ์Šคํƒ€์ผ์„ ์ž…ํžˆ๊ณ  ํŽ˜์ด์ง€๋กœ ๋งŒ๋“ค์–ด ๋ทฐํฌํŠธ์— ํ‘œ์‹œํ•˜๋Š” ๊ณผ์ •์„ critical Rendering Path๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • document๊ฐ์ฒด์— ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘๋™๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์—์„œ๋Š” ์–ด๋””์—์„œ๋‚˜ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’š DOM์ƒ์„ฑ

  • ์›๋ณธ HTML ๋ฌธ์„œ์˜ ๊ฐ์ฒด ๊ธฐ๋ฐ˜ ํ‘œํ˜„ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœ ํ…์ŠคํŠธ๋กœ ๊ตฌ์„ฑ๋œ HTML ๋ฌธ์„œ์˜ ๋‚ด์šฉ๊ณผ ๊ตฌ์กฐ๊ฐ€ ๊ฐ์ฒด ๋ชจ๋ธ๋กœ ๋ณ€ํ™˜๋˜์–ด ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ DOM์˜ ๊ฐœ์ฒด๊ตฌ์กฐ๋Š” ๋…ธ๋“œํŠธ๋ฆฌ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

  • DOM ์€ ํ•ญ์ƒ ์œ ํšจํ•œ HTML ํ˜•์‹์ด๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์ˆ˜์ •๋  ์ˆ˜ ์žˆ๋Š” ๋™์ ๋ชจ๋ธ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽ€ DOM์ด ์•„๋‹Œ ๊ฒƒ

  • HTML : HTML ๋ฌธ์„œ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋˜์ง€๋งŒ ํ•ญ์ƒ ๋™์ผํ•˜์ง„ ์•Š์Šต๋‹ˆ๋‹ค.
    • ์ž‘์„ฑ๋œ HTML๋ฌธ์„œ๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์„ ๋–„ DOM์„ ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ ๋ธŒ๋ผ์šฐ์ €๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ต์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด DOM์ด ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DOM์„ ์—…๋ฐ์ดํŠธ ํ•˜์ง€๋งŒ HTML ๋ฌธ์„œ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜์ง„ ์•Š์Šต๋‹ˆ๋‹ค.
  • DOM์€ ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์ด๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.
    • ๋ธŒ๋ผ์šฐ์ € ๋ทฐ ํฌํŠธ์— ๋ณด์ด๋Š” ๊ฒƒ์€ ๋ Œ๋”ํŠธ๋ฆฌ๋กœ DOM + CSSOM์˜ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค. ๋ Œ๋”ํŠธ๋ฆฌ๋Š” ์˜ค์ง ์Šคํฌ๋ฆฐ์— ๊ทธ๋ ค์ง€๋Š” ๊ฒƒ์œผ๋กœ DOM๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฆ‰, ๋ Œ๋”๋ง ์š”์†Œ๋งŒ ๊ด€๋ จ์žˆ์œผ๋ฏ€๋กœ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์ด์ง€ ์•Š๋Š” ์š”์†Œ๋Š” ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.
  • DOM์€ ๊ฐœ๋ฐœ๋„๊ตฌ์—์„œ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๊ฐœ๋ฐœ๋„๊ตฌ์˜ ์š”์†Œ๊ฒ€์‚ฌ๊ธฐ๋Š” DOM๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ทผ์‚ฌ์น˜๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, DOM์— ์—†๋Š” ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ปจ๋Œ€ CSS์˜ ::before ๊ณผ ::after ์„ ํƒ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ์„ฑ๋œ ๊ฐ€์ƒ ์š”์†Œ๋Š” CSSOM๊ณผ ๋ Œ๋”ํŠธ๋ฆฌ์˜ ์ผ๋ถ€๋ฅผ ๊ตฌ์„ฑํ•˜์ง€๋งŒ ๊ธฐ์ˆ ์ ์œผ๋กœ DOM์˜ ์š”์†Œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. DOM์€ ์˜ค์ง ์›๋ณธ HTML ๋ฌธ์„œ๋กœ ๋นŒ๋“œ๋˜๊ณ , ์š”์†Œ์— ์ ์šฉ๋˜๋Š” ์Šคํƒ€์ผ์„ ํฌํ•จํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
    • DOM ์€ HTML ๋ฌธ์„œ์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ๋ทฐ ํฌํŠธ์— ๋ฌด์—‡์„ ๋ Œ๋”๋งํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๊ณ , ํŽ˜์ด์ง€์˜ ์ฝ˜ํ…์ธ  ๋ฐ ๊ตฌ์กฐ, ์Šคํƒ€์ผ์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ์ˆ˜์ •๋˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’š DOM๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

  • DOM์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ์•„๋‹ˆ์ง€๋งŒ ์—†์œผ๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋Š” ์›นํŽ˜์ด์ง€ ๋˜๋Š” XMLํŽ˜์ด์ง€ ๋ฐ ์š”์†Œ๋“ค๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋ธ์ด๋‚˜ ๊ฐœ๋…๋“ค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–์ง€ ๋ชปํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ํŽ˜์ด์ง€์˜ ์ฝ˜ํ…์ธ ๋Š” DOM์— ์ €์žฅ๋˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์กฐ์ž‘ํ• ์ˆ˜ ์žˆ๋‹ค.
  • ์›น ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” Web API์ž…๋‹ˆ๋‹ค. DOM์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋…๋ฆฝ์ ์œผ๋กœ ์„ค๊ณ„๋˜์–ด ๋‹จ์ผ API์—์„œ ๋ฌธ์„œ์˜ ๊ตฌ์กฐ์  ํ‘œํ˜„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    API : Web of XML Page -> DOM + JavaScript

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

๐Ÿ’š HTML์— JS ์ ์šฉํ•˜๊ธฐ

  • console.dir์„ ์‚ฌ์šฉํ•ด DOM๊ตฌ์กฐ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. DOM์„ ๊ฐ์ฒด์˜ ๋ชจ์Šต์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์กฐํšŒ์‹œ HTML ์—˜๋ฆฌ๋จผํŠธ์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋‹ค์–‘ํ•œ ์†์„ฑ์ด ์ด๋ฏธ ๊ฐ์ฒด ๋‚ด์— ์กด์žฌํ•˜์—ฌ ๋งŽ์€ ์†์„ฑ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  • ์ž์‹์š”์†Œ๋ฅผ ๋ฐ”๋กœ ์กฐํšŒํ•˜๋ ค๋ฉด document.body.chidren์œผ๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ถ€๋ชจ์š”์†Œ๋ฅผ ์กฐํšŒํ•˜๋ ค๋ฉด console.dir(์ž์‹์š”์†Œ.parentElement)๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Element.closest()
    ๊ธฐ์ค€ ์š”์†Œ๋ถ€ํ„ฐ closest() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ถ€๋ชจ์š”์†Œ ๋‹จ์œ„๋กœ ์ถœ๋ฐœํ•ด ๊ฐ ์š”์†Œ๊ฐ€ ์ง€์ •ํ•œ ์„ ํƒ์ž์— ๋งŒ์กฑํ•  ๋•Œ๊นŒ์ง€ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ€๊น๊ฒŒ ์กฐ๊ฑด์— ๋งŒ์กฑํ•œ ๋ถ€๋ชจ์š”์†Œ๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฉฐ, ์กฐ๊ฑด์— ๋งŒ์กฑํ•œ ์š”์†Œ๊ฐ€ ์—†์œผ๋ฉด null๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿงก CRUD

  • HTML ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , ์กฐํšŒํ•˜๊ณ , ๊ฐฑ์‹ ํ•˜๊ณ , ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•ฉ๋‹ˆ๋‹ค. CRUD๋ฅผ ๋จผ์ € ์ดํ•ดํ•œ ํ›„์— ์„ธ์„ธํ•œ ๋ฉ”์„œ๋“œ ๋“ค์„ ๊ณต๋ถ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CREAT : document.creatElement()

document.createElement('div')  // <div></div> ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
//์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ DOM์„ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด, ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
const ๋ณ€์ˆ˜๋ช… = document.cerateElement('div')

APPEND : Element.append()

//์ƒ์„ฑํ•œ ๋ณ€์ˆ˜๋ฅผ ํŠธ๋ฆฌ๊ตฌ์กฐ์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์ž์‹ ๋’ค์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
document.body.append(๋ณ€์ˆ˜๋ช…)

READ : document.querySelector()

const ๋ณ€์ˆ˜๋ช… = document.querySelector(์…€๋ ‰ํ„ฐ)
//์…€๋ ‰ํ„ฐ ๋‚ด์— ํด๋ž˜์Šค๋‚˜ ์•„์ด๋””๋ฅผ ๋„ฃ์–ด HTML์š”์†Œ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
const ๋ณ€์ˆ˜๋ช… = document.querySelectorAll(์…€๋ ‰ํ„ฐ)
//์—ฌ๋Ÿฌ๊ฐœ์˜ ์š”์†Œ๋ฅผ ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์กฐํšŒํ•œ ์š”์†Œ๋“ค์€ ๋ฐฐ์—ด์€ ์•„๋‹ˆ์ง€๋งŒ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Array-like Object ์ธ๋ฐ, ์œ ์‚ฌ๋ฐฐ์—ด, ๋ฐฐ์—ดํ˜• ๊ฐ์ฒด ๋“ฑ์˜ ์ด๋ฆ„์œผ๋กœ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค.

UPDATE : textContent

const ๋ณ€์ˆ˜๋ช… = document.createElement('div')  // div์š”์†Œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ณ€์ˆ˜๋ช….textContent = '๋ฌธ์ž'  // <div>๋ฌธ์ž</div>
๋ณ€์ˆ˜๋ช….classList.add('CSS class๋ช…') //CSS์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
const ๋ถ€๋ชจ์š”์†Œ๋ช… = document.querySelector('๋ถ€๋ชจ์š”์†Œ ์…€๋ ‰ํ„ฐ') //์ž์‹์š”์†Œ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ๋จผ์ € ๋ถ€๋ชจ์š”์†Œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
๋ถ€๋ชจ์š”์†Œ๋ช….append(๋ณ€์ˆ˜๋ช…) // ๋ถ€๋ชจ์š”์†Œ ๋ฐ‘์— ์ž์‹์š”์†Œ๋กœ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

โ“ setAttribute(name, value)
์ง€์ •๋œ ์š”์†Œ์˜ ์†์„ฑ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์†์„ฑ์ด ์ด๋ฏธ ์žˆ์œผ๋ฉด ๊ฐ’์ด ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ง€์ •๋œ ์ด๋ฆ„๊ณผ ๊ฐ’์œผ๋กœ ์ƒˆ ์†์„ฑ์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
์†์„ฑ์˜ ํ˜„์žฌ๊ฐ’์„ ์–ป์œผ๋ ค๋ฉด getAttribute(), ์ œ๊ฑฐํ•˜๋ ค๋ฉด removeAttribute()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

DELETE

  • ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ
(์š”์†Œ)๋ณ€์ˆ˜๋ช….remove()
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž์‹ ์š”์†Œ๋ฅผ ์ง€์šฐ๋ ค๋ฉด innerHTML์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„ํŽธํ•˜๊ณ  ํŽธ๋ฆฌํ•˜์ง€๋งŒ ์‚ฌ์ดํŠธ์˜ ๊ณต๊ฒฉ๋ฒกํ„ฐ๊ฐ€ ๋˜์–ด ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
document.querySelector('๋ถ€๋ชจ์š”์†Œ๋ช…').innerHTML = '' ; //๋ถ€๋ชจ์š”์†Œ ์•„๋ž˜ ๋ชจ๋“  ์ž์‹์š”์†Œ๋ฅผ ์ง€์›๋‹ˆ๋‹ค.
  • ์ž์‹์š”์†Œ๋ฅผ ์ง€์ •ํ•ด์„œ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
while(๋ถ€๋ชจ์š”์†Œ๋ช….firstChild) {
  ๋ถ€๋ชจ์š”์†Œ๋ช….removeChild(๋ถ€๋ชจ์š”์†Œ๋ช….firstChild);
} // ๋ถ€๋ชจ์š”์†Œ ์•ˆ์— ์ฒซ๋ฒˆ์จฐ ์ž์‹์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

while(๋ถ€๋ชจ์š”์†Œ๋ช….children.length > 1) {
  ๋ถ€๋ชจ์š”์†Œ๋ช…. removeChild(๋ถ€๋ชจ์š”์†Œ๋ช….lastChild);
} // ๋ถ€๋ชจ์š”์†Œ ์•ˆ์— ์ž์‹์š”์†Œ๊ฐ€ ํ•œ๊ฐœ๋งŒ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • ์ง์ ‘ ํด๋ž˜์Šค ์ด๋ฆ„์œผ๋กœ ์ฐพ์•„์„œ ์ง€์šธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
const ๋ณ€์ˆ˜๋ช… = document.querySelectorAll ('.ํด๋ž˜์Šค๋ช…') //'ํด๋ž˜์Šค๋ช…'์„ ๊ฐ€์ง„ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
๋ณ€์ˆ˜๋ช….forEach(function(ํด๋ž˜์Šค๋ช…) {
  ํด๋ž˜์Šค๋ช….remove();
})
// OR
for(let ํด๋ž˜์Šค๋ช… of ๋ณ€์ˆ˜๋ช…) {
  ํด๋ž˜์Šค๋ช….remove()
}
  • ๊ทธ๋ƒฅ innerHTML์„ ์ด์šฉํ•ด ์š”์†Œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿงก ์ด๋ฒคํŠธ ๊ฐ์ฒด

  • ์ด๋ฒคํŠธ ๊ฐ์ฒด๋Š” DOM๊ณผ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด ๋ฐœ์ƒ๋˜๋Š” ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์ปจ๋Œ€ ๋ˆ„๋ฅธํ‚ค์˜ ํ‚ค์ฝ”๋“œ๋ฅผ ์ €์žฅํ•ด์ฃผ๋Š” ๊ฒƒ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณดํ†ต ์ด๋ฒคํŠธ๊ฐ์ฒด๋งค๊ฐœ๋ณ€์ˆ˜๋Š” [event] ํ˜น์€ [e]๋ผ๊ณ  ๋งŽ์ด ์”๋‹ˆ๋‹ค.

๐Ÿ’š ๊ณตํ†ต ์ด๋ฒคํŠธ๊ฐ์ฒด ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ์˜ ์ข…๋ฅ˜

  • currentTarget : ํ˜„์žฌ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌ์ค‘์ธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜
  • target : ์ด๋ฒคํŠธ๋ฅผ triggerํ•œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜
  • type : ๋ฐœ์ƒ๋œ ์ด๋ฒคํŠธ ํƒ€์ž…์„ ๋ฐ˜ํ™˜
  • view : ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ window๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜

profile
๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์–ด ๋‘ฅ๋‹น๋‘ฅ๋‹น

0๊ฐœ์˜ ๋Œ“๊ธ€