๐Ÿ‘โ€๐Ÿ—จjavascript(DOM, ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ, ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง, classList, Jquery)

stayby94ยท2023๋…„ 8์›” 1์ผ

JS๋ฌธ๋ฒ•

๋ชฉ๋ก ๋ณด๊ธฐ
5/15

DOM ์ด๋ž€??

  • Document Object Model.
  • html๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์—„์—ฐํžˆ ๋‹ค๋ฅธ ์–ธ์–ด์ธ๋ฐ ์–ด๋–ป๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ html์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์„๊นŒ?
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ HTML ์กฐ์ž‘์„ ํ•˜๊ธฐ ์œ„ํ•ด์„  HTML์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•ด๋†“๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ ์‹ค์ œ๋กœ ๋ธŒ๋ผ์šฐ์ €๋Š” HTML ํŽ˜์ด์ง€๋ฅผ ์—ด์–ด์ค„ ๋•Œ
  • HTML์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์‰ฝ๊ฒŒ ์ฐพ๊ณ  ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด object์™€ ๋น„์Šทํ•œ ์ž๋ฃŒํ˜•์— ๋‹ด์•„์ค๋‹ˆ๋‹ค.
  • ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” var document = { } ์ด๋Ÿฐ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ๊ฑฐ๊ธฐ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.
    var document = {
    div1 : {
    style : {color : 'red'}
    innerHTML : '์•ˆ๋…•ํ•˜์„ธ์š”'
    }
    }
  • ์ด์ œ document.div1.innerHTML = '์•ˆ๋…•' ์ด๋ ‡๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์งœ๋ฉด HTML ์กฐ์ž‘์ด ๊ฐ€๋Šฅ
  • ๋ธŒ๋ผ์šฐ์ €๋Š” HTML ๋ฌธ์„œ๋ฅผ ์œ„์—์„œ ๋ถ€ํ„ฐ ์ฝ์œผ๋ฉฐ DOM์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ํ˜น์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์„ ์•ฝ๊ฐ„ ๋‚˜์ค‘์œผ๋กœ ๋ฏธ๋ฃจ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Œ

    • $(document).ready(function(){ ์‹คํ–‰ํ•  ์ฝ”๋“œ })
      document.addEventListener('DOMContentLoaded', function() { ์‹คํ–‰ํ•  ์ฝ”๋“œ })
    • ์ด ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ๋“ค์€ "HTML์„ ๋‹ค ์ฝ์–ด๋“ค์˜€๋Š”์ง€"๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ์ž…๋‹ˆ๋‹ค.
  • document๋Š” ํ•ด๋‹น ์›นํŽ˜์ด์ง€๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ html๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•!!

  • html์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ id๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ• : document.getElementId('')

    • const title = document.getElementById("title")
    • title.innerText = "got you!"
  • html์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ class๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ• : document.getElementClassName('')

    • html์—์„œ ํ•ด๋‹นํ•˜๋Š” ํƒœ๊ทธ์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ arrayํ˜•์‹์œผ๋กœ ๊ฐ€์ง€๊ณ  ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ํ•˜๋‚˜์˜ ํƒœ๊ทธ๋งŒ ๊ฐ€์ง€๊ณ  ์˜ค์ง€ ๋ชปํ•จ.
  • ๊ทธ๋Ÿฌ๋‚˜ querySelector๋Š” element๋ฅผ CSS ๋ฐฉ์‹์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค!

    • class์ด๋ฆ„์œผ๋กœ ์ฐพ์„ ๋•Œ const title = document.querySelector(".hello h1");
    • id์ด๋ฆ„์œผ๋กœ ์ฐพ์„ ๋•Œ const title = document.querySelector("#id h1");
  • querySelectorAll

    • querySelectorAll('.ํด๋ž˜์Šค๋ช…')[0] : ํด๋ž˜์Šค๋ช… ์ค‘ ์ฒซ๋ฒˆ์งธ ํด๋ž˜์Šค๋ช… ์„ ํƒ!

์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ

โ“ ์ฐธ๊ณ ์‚ฌํ•ญ

  • html์˜ element๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ console.dir๋กœ ์ฐ์–ด๋ณด๋ฉด object ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ๋˜๋Š”๋ฐ
    ๊ทธ ์ค‘ on์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ๋“ค์ด event์ž„.
  • ๋˜, element object ์•ˆ์— style์ด ์žˆ๋Š” ๊ฒƒ๋„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ฅผ ํ†ตํ•ด ์•Œ ์ˆ˜ ์žˆ๋Š”๊ฑด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ html์š”์†Œ๋“ค์˜ style๋„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ!
    ์˜ˆ์‹œ) title.style.color = "blue"
  • event๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€

    • 1. title.addEventListener("click", handlTitleClick)

      • ์—ฌ๊ธฐ์„œ click์€ ์ด๋ฒคํŠธ ์ข…๋ฅ˜๋ฅผ ๋งํ•˜๊ณ (on์€ ๋นผ๊ณ  ์ž…๋ ฅํ•ด์•ผ ํ•จ.)
      • handleTitleClick์€ ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋ฌ์„ ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜!
        • ํ•จ์ˆ˜ ์‹คํ–‰๋ฒ„ํŠผ์€ ํ•จ์ˆ˜์ด๋ฆ„ ๋’ค์— ()์ธ๋ฐ ์™œ ()๋Š” ์ƒ๋žตํ•˜๋Š”์ง€? ์—ฌ๊ธฐ์„  ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์‹คํ–‰ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ž๋™์œผ๋กœ ์‹คํ–‰๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ
      • 2๋ฒˆ์งธ ์ธ์ž์— ๋“ค์–ด๊ฐ€๋Š” ํ•จ์ˆ˜๋ฅผ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ผ๊ณ  ๋ถ€๋ฆ„!!!!
      • ๋ฌด์–ธ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž‘์—…ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์š”๊ตฌํ•จ. ๊ผญ ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ์—์„œ๋งŒ ์“ฐ์ด๋Š” ๊ฐœ๋…์ด ์•„๋‹ˆ๋‹ˆ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ž€ ์šฉ์–ด๋Š” ๊ธฐ์–ตํ•ฉ์‹œ๋‹ค.
    • 2. title.onclick = handleTitleClick

      • ์ด ์ค‘ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋‚˜์ค‘์— removeEventListener๋ฅผ ํ†ตํ•ด ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž„.

      • ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์“ฐ๊ธฐ ์ „๊นŒ์ง„ html ํƒœ๊ทธ์— on์ด ๋ถ™์€ ์ด๋ฒคํŠธ๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•ด์คฌ์Œ.
        ์˜ˆ์‹œ) <button>๋ฒ„ํŠผ1</button>
  • ์ด๋ฒคํŠธ ์ข…๋ฅ˜

    • ์ˆ˜๋งŽ์€ ์ด๋ฒคํŠธ ์ข…๋ฅ˜๊ฐ€ ์žˆ์ง€๋งŒ ๊ทธ ์ค‘์—์„œ ๋ช‡๊ฐ€์ง€๋งŒ ๋ณด๋ฉด
      • onmouseenter : ๋งˆ์šฐ์Šค๊ฐ€ ํ•ด๋‹น ํƒœ๊ทธ์— ์œ„์น˜ํ•ด ์žˆ์„ ๋•Œ ์‹คํ–‰
      • onmouseleave : ๋งˆ์šฐ์Šค๊ฐ€ ํ•ด๋‹น ํƒœ๊ทธ์—์„œ ๋ฒ—์–ด๋‚ฌ์„ ๋•Œ ์‹คํ–‰
      • onmousedown : ๋งˆ์šฐ์Šค๋กœ ๋ˆŒ๋ €์„ ๋•Œ ๋ฐœ์ƒ.
      • onmouseup : ๋งˆ์šฐ์Šค๋ฅผ ๋—์„ ๋•Œ ๋ฐœ์ƒ.
      • onmousemove : ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์ผ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ.
      • onclick : ํ•ด๋‹น ํƒœ๊ทธ๊ฐ€ ํด๋ฆญ ๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
      • oncopy : ๋ฌด์–ธ๊ฐˆ copy ํ–ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
      • onkeydown : ๋ฌด์Šจ ์ด๋ฒคํŠธ์ธ์ง€ ์ฐพ์•„๋ณด์‹œ๊ธธ...
      • onmouseover : ๋ฌด์Šจ ์ด๋ฒคํŠธ์ธ์ง€ ์ฐพ์•„๋ณด์‹œ๊ธธ...
      • onscroll : ๋ฌด์Šจ ์ด๋ฒคํŠธ์ธ์ง€ ์ฐพ์•„๋ณด์‹œ๊ธธ...
  • load ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ

  • load ๋ผ๋Š” ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด DOM ์ƒ์„ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€, css, jsํŒŒ์ผ์ด ๋กœ๋“œ๊ฐ€ ๋๋Š”์ง€๋„ ์ฒดํฌ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • ์…€๋ ‰ํ„ฐ๋กœ์ฐพ์€์ด๋ฏธ์ง€.addEventListener('load', function(){
      //์ด๋ฏธ์ง€ ๋กœ๋“œ๋˜๋ฉด ์‹คํ–‰ํ•  ์ฝ”๋“œ
      })
    • ๊ทผ๋ฐ ์™ธ๋ถ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์— ์ €๊ฑธ ์ ์–ด๋†“์œผ๋ฉด
    • ๊ทธ js ํŒŒ์ผ๋ณด๋‹ค ์ด๋ฏธ์ง€๊ฐ€ ๋” ๋จผ์ € ๋กœ๋“œ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‹ˆ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์ฒดํฌ๋ฅผ ๋ชปํ•  ์ˆ˜๋„ ์žˆ๊ฒ ๊ตฐ์š”
    • ๊ทธ๋Ÿฌ๋ฉด window๋ฅผ ๋ถ™์—ฌ๋„ ๋จ. document ์— ํฌํ•จ๋œ ์ด๋ฏธ์ง€, css ํŒŒ์ผ ๋“ฑ ๋ชจ๋“  ๊ฒƒ์ด ๋กœ๋“œ๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ์ฒดํฌํ•ด์คŒ.
    • window.addEventListener('load', function(){
      //document ์•ˆ์˜ ์ด๋ฏธ์ง€, js ํŒŒ์ผ ํฌํ•จ ์ „๋ถ€ ๋กœ๋“œ๊ฐ€ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
      })
  • ready ์ด๋Ÿฐ๊ฑฐ๋ž‘ ์ฐจ์ด๋Š” ์•ž์„  .ready()๋Š” DOM ์ƒ์„ฑ๋งŒ ์ฒดํฌํ•˜๋Š” ํ•จ์ˆ˜์ธ๋ฐ,
    ์ด๊ฒƒ๋ณด๋‹ค ์•ฝ๊ฐ„ ๋” ๋‚˜์•„๊ฐ€์„œ ๋ชจ๋“  ํŒŒ์ผ๊ณผ ์ด๋ฏธ์ง€์˜ ๋กœ๋“œ์ƒํƒœ๋ฅผ ์ฒดํฌํ•œ๋‹ค๊ณ  ๋ณด์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • input, change ์ด๋ฒคํŠธ

    • input : inputํƒœ๊ทธ์— ์ž…๋ ฅํ•œ ๊ฐ’์ด ๋ณ€ํ•  ๋•Œ ์‹คํ–‰๋จ.
    • change : inputํƒœ๊ทธ์— ์ž…๋ ฅํ•œ ๊ฐ’์ด ๋ณ€ํ•  ๋•Œ ์‹คํ–‰๋˜๋‚˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  ์ปค์„œ๋ฅผ ๋‹ค๋ฅธ ๊ณณ์„ ์ฐ์„ ๋•Œ ๋ฐœ์ƒํ•จ.(ํฌ์ปค์Šค๋ฅผ ์žƒ์„ ๋•Œ)

์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง

  • ์ด๋ฒคํŠธ๊ฐ€ ์ƒ์œ„ HTML๋กœ ํผ์ง€๋Š” ํ˜„์ƒ

    • ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•ด์„œ ์ข…์ด๋ฅผ ๊ฒน์ณ๋†“๊ณ  ์ œ์ผ ์œ„์— ์ข…์ด๋ฅผ ๋ˆ„๋ฅด๋ฉด ์•„๋ž˜ ์ข…์ด๋“ค๋„ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๊ฒƒ๊ณผ ๋น„์Šท.

  • ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์œ ์šฉํ•œ ์ด๋ฒคํŠธ ๊ด€๋ จ ํ•จ์ˆ˜๋“ค!!

    • ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ ๋‚ด๋ถ€ ์ฝœ๋ฐฑํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์•ˆ์— e๋ฅผ ๋„ฃ์œผ๋ฉด ์•„๋ž˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.

      • e.target : ์œ ์ €๊ฐ€ ์‹ค์ œ๋กœ ๋ˆ„๋ฅธ html ์š”์†Œ
      • e.currentTarget : ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ๊ฐ€ ๋‹ฌ๋ฆฐ ๊ณณ
      • e.preventDefault() : ์ด๋ฒคํŠธ ๊ธฐ๋ณธ๋™์ž‘์„ ๋ง‰์•„์คŒ.
      • e.stopPropagation() : ๋‚ด ์ƒ์œ„์š”์†Œ๋กœ ํผ์ง€๋Š” ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์„ ๋ง‰์•„์คŒ!!!
    • ์˜ˆ์‹œ)

    document.querySelector('.black-bg').addEventListener('click', function(e){
      const black_bg = document.querySelector('.black-bg')
      if(e.target==black_bg){
        document.querySelector('.black-bg').classList.remove('show-modal')
      }
      })
    • ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์œ ์ €๊ฐ€ ์‹ค์ œ๋กœ ๋ˆ„๋ฅธ ๊ณณ์ด e.target๊ณผ ๊ฐ™๋‹ค๋ฉด show-modal์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐ.

ClassList

  • classList๋Š” ์šฐ๋ฆฌ๊ฐ€ class๋“ค์˜ ๋ชฉ๋ก์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ—ˆ์šฉํ•ด์คŒ.

    • element.classList.contains() : html element์˜ class๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€
    • element.classList.remove() : html element์˜ class ์ œ๊ฑฐ
    • element.classList.add() : html element์— class ์ถ”๊ฐ€
    • element.classList.toggle(class๋ช…) : toggle ํ•จ์ˆ˜๋Š” class๋ช…์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น class๋ช…์„ ์ œ๊ฑฐํ•˜๊ณ  ๋งŒ์•ฝ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ!

Jquery

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ HTML ์กฐ์ž‘๋ฌธ๋ฒ•์„ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    • ๐Ÿ’ฅ์ฃผ์˜์‚ฌํ•ญ! ์„ค์น˜ํ•œ ๊ณณ ํ•˜๋‹จ์—์„œ jquery ๋ฌธ๋ฒ• ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  • ๊ธฐ์ดˆ ๋ฌธ๋ฒ•

    • querySelector โ†’ $
    • $๋Š” querySelectorAll๊ณผ๋„ ๋น„์Šท
    • addEventListener โ†’ on
    • innerHTML โ†’ html
    • style โ†’ css
  • ์˜ˆ์‹œ)

    • <script>
        document.querySelector('.hello').innerHTML = '๋ฐ”๋ณด'
        โ†’ $('.hello').html('๋ฐ”๋ณด');
  • ์Šคํƒ€์ผ ๋ณ€๊ฒฝ

    • $('.hello').css('color','red');
  • ํด๋ž˜์Šค ํƒˆ๋ถ€์ฐฉ

    • $('.hello').addClass('show')
      // ์ œ๊ฑฐ๋Š” .removeClass(), ํ† ๊ธ€์€ .toggleClass()
  • ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ๊ตฌ๋ฌธ

    • document.querySelector('#test-btn').addEventListener('click', function(){})
      $('#test-btn').on('click',function(){})
  • ๐Ÿ’ฅ ์ฃผ์˜์‚ฌํ•ญ!!

    • $('์…€๋ ‰ํ„ฐ')๋กœ ์ฐพ์œผ๋ฉด jqueryํ•จ์ˆ˜๋งŒ ๋ถ™์ผ ์ˆ˜ ์žˆ์Œ.
      ๋ฐ˜๋Œ€๋กœ querySelector('์…€๋Ÿญํ„ฐ')๋กœ ์ฐพ์œผ๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋งŒ ๋ถ™์ผ ์ˆ˜ ์žˆ์Œ.
  • ๋ชจ๋‹ฌ์ฐฝ ๋„์šฐ๊ธฐ(ํ•˜๋‚˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ํ•˜๋‚˜๋Š” ์ œ์ด์ฟผ๋ฆฌ ํ™œ์šฉ)

        <div class="black-bg">
          <div class="white-bg">
            <h4>๋กœ๊ทธ์ธํ•˜์„ธ์š”</h4>
            <button class="btn btn-danger" id="close">๋‹ซ๊ธฐ</button>
          </div>
        </div> 
        
        <button class="loginBtn">๋กœ๊ทธ์ธ</button>
    
        <script>
          document.querySelector('.loginBtn').addEventListener('click', function(){
              document.querySelector('.black-bg').classList.add('show-modal')
          })
          $('.btn-danger').on('click', function(){
              $('.black-bg').removeClass('show-modal')
          })
    • loginBtn์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง„ ๋ฒ„ํŠผ์„ ์„ ํƒํ•ด์„œ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์คŒ.
    • ํด๋ฆญํ•˜๋ฉด black-bg๋ผ๋Š” div์— show-modal์ด๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ์ถ”๊ฐ€๋˜์„œ ๋ชจ๋‹ฌ์ฐฝ์ด ๋„์›Œ์ง.
    • btn-danger ์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง„ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์„ ์„ ํƒํ•ด์„œ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์คŒ.
    • ํด๋ฆญํ•˜๋ฉด black-bg๋ผ๋Š” div์— show-modal์ด๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ์ œ๊ฑฐ๋˜์„œ ๋ชจ๋‹ฌ์ฐฝ์ด ์‚ฌ๋ผ์ง.

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