[JS] DOM

Updated:

Categories:

Tags: ,

๐Ÿ“Œ ๊ฐœ์ธ์ ์ธ ๊ณต๊ฐ„์œผ๋กœ ๊ณต๋ถ€๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
์ •ํ™•ํ•˜์ง€ ์•Š์€ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ๋ฐ”๋ž๋‹ˆ๋‹ค :๐Ÿ˜ธ
[ํ‹€๋ฆฐ ๋‚ด์šฉ์€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๋ณต๋ฐ›์œผ์‹ค๊ฑฐ์—์š”]

DOM : HTML ์š”์†Œ๋ฅผ Object(JavaScript Object)์ฒ˜๋Ÿผ ์กฐ์ž‘(Manipulation)ํ•  ์ˆ˜ ์žˆ๋Š” Model

DOM ๊ธฐ์ดˆ

Untitled

JavaScript๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด, DOM์œผ๋กœ HTML์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ

  1. HTML์— JavaScript ์ ์šฉ
    1. HTML์— JavaScript๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” <script> ํƒœ๊ทธ๋ฅผ ์ด์šฉ
    2. ์•„๋ž˜์˜ ๊ฒฝ์šฐ HTML ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•˜๋Š” myScriptFile.js์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

      1
      
       <script src="myScriptFile.js"></script>
      
    3. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๋Š” ๊ณผ์ •์—์„œ <script> ์š”์†Œ๋ฅผ ๋งŒ๋‚˜๋ฉด, ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” HTML ํ•ด์„์„ ์ž ์‹œ ๋ฉˆ์ถค.
    4. HTML ํ•ด์„์„ ์ž ์‹œ ๋ฉˆ์ถ˜ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” <script> ์š”์†Œ๋ฅผ ๋จผ์ € ์‹คํ–‰
    5. <script> ์š”์†Œ๋Š” ๋“ฑ์žฅ๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ผญ ๊ธฐ์–ต

      Untitled

  2. script ์‚ฝ์ž… ์œ„์น˜

    <script> ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€

    1. ์•ˆ์ชฝ์— ์ถ”๊ฐ€
      1. head ํƒœ๊ทธ์— script ํƒœ๊ทธ๊ฐ€ ๋“ค์–ด๊ฐ„ ๊ฒฝ์šฐ, HTML ํŒŒ์‹ฑ์ด ์™„๋ฃŒ๋˜๊ธฐ ์ „์— scipt ํƒœ๊ทธ๋ฅผ ์‹คํ–‰. ๋”ฐ
      2. ๋”ฐ๋ผ์„œ DOM ์š”์†Œ๋ฅผ ์กฐ์ž‘ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ํ•ด๋‹น ์‹œ์ ์—์„œ ์กด์žฌํ•˜์ง€ ์•Š๋Š” DOM ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ
      3. ํƒœ๊ทธ๊ฐ€ ํŒŒ์‹ฑ๋˜๊ธฐ ์ „์ด๊ธฐ์— js ํŒŒ์ผ์ด null์„ ๊ฐ€์ง€๊ณ  ์ž‘์—…ํ•œ๋‹ค
      4. $(document).ready(function(){ ... }): ์ด ์ฝ”๋“œ๋Š” ๋ฌธ์„œ๊ฐ€ ์™„์ „ํžˆ ๋กœ๋“œ๋˜๊ณ  ์ค€๋น„๋œ ํ›„์— ๋‚ด๋ถ€์˜ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด, ๋ชจ๋“  HTML ์š”์†Œ๋“ค์ด ๋กœ๋“œ๋œ ํ›„์— ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. = ํ•ด๋‹น ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ.
    2. </body>๊ฐ€ ๋๋‚˜๊ธฐ ์ „์— ์ถ”๊ฐ€
      1. ์ด์— ๋”ฐ๋ผ์„œ ๋ณดํ†ต ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ body ํƒœ๊ทธ ๋งจ ํ•˜๋‹จ์— ์ž‘์„ฑ
      2. ์ด๋Š” HTML ํŒŒ์‹ฑ์„ ๋ชจ๋‘ ๋งˆ์นœ ํ›„์— script ํƒœ๊ทธ๋ฅผ ์ฝ๊ธฐ ๋•Œ๋ฌธ์—,
      3. ์ด๋ฏธ DOM ๊ฐ์ฒด๋“ค๋„ ๋ชจ๋‘ ์ƒ์„ฑ๋˜์–ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋ฌธ์ œ ์—†์ด ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
      4. ๋”ฐ๋ผ์„œ DOM ์š”์†Œ์— ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ, <body> ํƒœ๊ทธ์— ๋‘ 
      5. ์ด์™€ ์ƒ๊ด€์—†์ด ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•˜๋ ค๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ด๋ผ๋ฉด <head> ํƒœ๊ทธ์— ๋‘๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
    3. ๋‘ ๋ฐฉ์‹์˜ ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ 
      1. ๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ myScriptFile.js ๋‚ด์˜ ์ฒซ ๋ฒˆ์งธ console.log๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ถœ๋ ฅํ•˜์ง€๋งŒ, ๋‘ ๋ฒˆ์งธ console.log์˜ ๊ฒฝ์šฐ ์ œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜์ง€ ๋ชปํ•˜๋Š” ์˜ˆ์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

        1
        2
        3
        4
        
         console.log('welcome JavaScript');
                    
         let msgElement = document.querySelector('#msg');
         console.log(msgElement);
        
      2. ์— ์ถ”๊ฐ€์‹œ null์ด ์ฝ˜์†”์— ์ถœ๋ ฅ๋จ.

    async์™€ defer๋Š” HTML5์— ์ถ”๊ฐ€๋œ

    ์ด๋“ค์€ HTML ํŒŒ์‹ฑ๊ณผ ์Šคํฌ๋ฆฝํŠธ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ง„ํ–‰

    1. async
      1. script ํƒœ๊ทธ๋ฅผ ๋‹ค์šด๋ฐ›๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์—์„œ HTML ํŒŒ์‹ฑ์ด ๋ฉˆ์ถ”๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    2. defer
      1. script ํƒœ๊ทธ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๋•Œ,ย defer ์†์„ฑ์€ ์œ„์—์„œ ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ํ•˜๊ฒŒ ํ•œ๋‹ค.
      2. async ์†์„ฑ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ HTML ํŒŒ์‹ฑ์„ ์ค‘๋‹จ์‹œํ‚ค์ง€๋Š” ์•Š์ง€๋งŒ, ํŒŒ์‹ฑ์ด ๋ชจ๋‘ ์ข…๋ฃŒ๋œ ํ›„ ์‹คํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค.
      3. ์ด์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ๋ฐฉํ–ฅ๋Œ€๋กœ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

    ํ€ด์ฆˆ.

    id์˜ ์ด๋ฆ„์ด nav์ธ div ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํฌํ•จํ•ด์„œ, ๋ชจ๋“  ์ž์‹ ์—˜๋ฆฌ๋จผํŠธ์˜ class ์ด๋ฆ„์„ console.log๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜์‚ฌ ์ฝ”๋“œ(pseudocode)๋กœ ์ž‘์„ฑํ•˜์„ธ์š”.

    Untitled

DOM ๋‹ค๋ฃจ๊ธฐ

JS์™€ JQuery ๋‘๊ฐ€์ง€ ์žˆ๋Š”๋ฐ JQuery๋Š” react๋“ฑ๋“ฑ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ณณ ์ด ๋งŽ์Œ.

JS

์™„์ „์š”์•ฝ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//div ์š”์†Œ ์ƒ์„ฑ ๋ฐ ๋‚ด์šฉ์ƒ์„ฑ - ์•„์ง html๋‚ด์— ๋ณด์ด์ง€์•Š๋Š” ์ƒํƒœ
const tweetDiv = document.createElement('div');
tweetDiv.textContent = 'hi jerry';

//์ถ”๊ฐ€ํ•  ํด๋ž˜์Šค ์กฐํšŒ 
const findDiv = document.querySelector('.tweet');

// ํด๋ž˜์Šค์˜ ์ž์‹์š”์†Œ๋กœ ์ถ”๊ฐ€ - html์˜ tweetํด๋ž˜์Šค์˜ ์ฒซ๋ฒˆ์งธ์š”์†Œ์˜ ์ž์‹์— ์ถ”๊ฐ€๋œ ๊ฒƒ์ด ๋ณด์ž„
findDiv.append(tweetDiv);

// ์š”์†Œ์— ํด๋ž˜์Šค ์ถ”๊ฐ€ 
tweetDiv.classList.add('abc');

// ์ด๋ฏธ์žˆ๋Š” ํด๋ž˜์Šค์— ์ƒˆ๋กœ์šด ํด๋ž˜์Šค ์ถ”๊ฐ€
findDiv.classList.add('tweeta');

//remove
//1. ์•Œ๊ณ  ์žˆ๋Š” ์š”์†Œ๋งŒ ์‚ญ์ œ
tweetDiv.remove();
//2. ํ•ด๋‹น ํด๋ž˜์Šค๋งŒ ์‚ญ์ œ
const tweets = document.querySelectorAll('.tweet')
tweets.forEach(function(tweet){
    tweet.remove();
})

//removeChild
//1. TweetList๋งŒ ๋‚จ๊ธฐ๊ณ  ์‚ญ์ œ
const container = document.querySelector('#container');
while (container.children.length > 1) {
  container.removeChild(container.lastChild);
}
//2. container ๋‚ด ๋ชจ๋‘ ์‚ญ์ œ
const container = document.querySelector('#container');
while (container.firstChild) {
  container.removeChild(container.firstChild);
}

Untitled


remove -1

Untitled

removeChild-1

Untitled

remove -2

Untitled

removeChild-2

Untitled

์š”์•ฝ

Untitled

  1. Create

    1
    2
    
     const tweetDiv = document.createElement('div');
     tweetDiv.textContent = 'hi jerry';
    

    Untitled

    Untitled

  2. read

    1
    
     const findDiv = document.querySelector('.tweet');
    

    Untitled

    Untitled

  3. Append

    1
    
     findDiv.append(tweetDiv);
    

    Untitled

  4. update

    1
    2
    
     tweetDiv.classList.add('abc');
     findDiv.classList.add('tweeta');
    

    Untitled

    Untitled

  5. Delete

    1. remove() : ์‚ญ์ œํ•˜๋ ค๋Š” ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ

      1
      
       tweetDiv.remove();
      

      Untitled

      Untitled

    2. innerHTML - ๋ณด์•ˆ์ƒ ๊ถŒ์žฅ์•ˆํ•จ.

    3. removeChild
      1. container ๋‚ด ๋ชจ๋‘ ์‚ญ์ œ

        1
        2
        3
        4
        
         const container = document.querySelector('#container');
         while (container.firstChild) {
           container.removeChild(container.firstChild);
         }
        

        Untitled

        Untitled

      b. TweetList๋งŒ ๋‚จ๊ธฐ๊ณ  ์‚ญ์ œ

      1
      2
      3
      4
      
       const container = document.querySelector('#container');
       while (container.children.length > 1) {
         container.removeChild(container.lastChild);
       }
      

      Untitled

      Untitled

    4. ํ•ด๋‹น ํด๋ž˜์Šค๋งŒ ์‚ญ์ œ

      1
      2
      3
      4
      5
      6
      7
      8
      
       const tweets = document.querySelectorAll('.tweet')
       tweets.forEach(function(tweet){
           tweet.remove();
       })
       // or
       for (let tweet of tweets){
           tweet.remove()
       }
      

      Untitled

Create

  1. document ๊ฐ์ฒด์˜ createElement ๋ฉ”์„œ๋“œ
    1. ์˜ˆ์ œ 1. ์ƒˆ๋กœ์šด<div>์š”์†Œ ๋งŒ๋“ค๊ธฐ

      1
      
       document.createElement('div')
      
    2. ๋ณ€์ˆ˜์— ํ• ๋‹น

      1
      
       const tweetDiv = document.createElement('div')
      
      • ์‹คํ–‰๊ฒฐ๊ณผ

        Untitled

    3. but, html์—๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Œ.
      1. tweetDiv๋ผ๋Š” ์š”์†Œ๋Š” ํ˜„์žฌ ๊ณต์ค‘๋ถ€์–‘ ์ค‘

      zzQEJU2F0-1597040532407.gif

    4. ๋งŒ๋“  ์ˆœ๊ฐ„ ๋ณ€์ˆ˜์—๋งŒ ๋‹ด๊ฒจ์ ธ ์žˆ๊ณ  DOM์—๋Š” ์•ˆ ์˜ฌ๋ผ๊ฐ€ ์žˆ์Œ
  2. ์ดํ›„ Append๋ฅผ ํ†ตํ•ด ํŠธ๋ฆฌ๊ตฌ์กฐ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ

Append

  1. CREATE์—์„œ ๋งŒ๋“  tweetDiv๋ผ๋Š” ๋ณ€์ˆ˜๋Š” ์•„์ง โ€œ๊ณต์ค‘๋ถ€์–‘โ€์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Append Method๋ฅผ ์‚ฌ์šฉํ•ด ํŠธ๋ฆฌ๊ตฌ์กฐ์— ์—ฐ๊ฒฐ
    1. ๋ณ€์ˆ˜ tweetDiv์— ๋‹ด๊ธด ์ƒˆ๋กœ์šด <div> ์š”์†Œ๋ฅผ <body> ์š”์†Œ์— append

      1
      
       document.body.append(tweetDiv);
      
    2. ์‹คํ–‰ ๊ฒฐ๊ณผ

      1. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ Elements ํƒญ์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      Untitled

Read

DOM์„ ์ด์šฉํ•˜์—ฌ HTML Element๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•

  1. querySelector์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ ์„ ํƒ์ž(selector)๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ํ™•์ธ
    1. ์„ ํƒ์ž๋กœ๋Š” HTML ์š”์†Œ("div"), id, class ์„ธ ๊ฐ€์ง€๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ
    2. query ์กฐํšŒํ•˜๋‹ค. querySelector๋Š” ์„ ํƒ์ž๋ฅผ ์กฐํšŒํ•œ๋‹ค๋Š” ์˜๋ฏธ
  2. querySelector
    1. ์˜ˆ์ œ - ํด๋ž˜์Šค ์ด๋ฆ„์ด tweet ์ธ HTML ์—˜๋ฆฌ๋จผํŠธ ์ค‘ ์ฒซ ๋ฒˆ์งธ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์กฐํšŒ

      1
      
       const oneTweet = document.querySelector('.tweet')
      
      1. ๊ฒฐ๊ณผ

        Untitled

      2. HTML ๋ฌธ์„œ์—๋Š” ํด๋ž˜์Šค ์ด๋ฆ„์ด tweet ์ธ ์š”์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋Š” ๋ฐ, ๋ณ€์ˆ˜ oneTweet์— ํ• ๋‹น๋œ ์š”์†Œ๋Š” ๋‹จ ํ•˜๋‚˜

  3. querySelectorAll
    1. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์†Œ๋ฅผ ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š”, querySelectorAll์„ ์‚ฌ์šฉ

      1
      
       const tweets = document.querySelectorAll('.tweet');
      
    2. ์กฐํšŒํ•œ HTML ์š”์†Œ๋“ค์€ ๋ฐฐ์—ด์ฒ˜๋Ÿผ for๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ(iterator ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ) โ‡’ but ๋ฐฐ์—ด์€ ์•„๋‹ˆ๊ณ  ์œ ์‚ฌ๋ฐฐ์—ด : Array-like Object
    3. ์œ„ iv์˜ ์„ค๋ช… ์˜ˆ์ œ
      • ์œ ์‚ฌ๋ฐฐ์—ด

        Untitled

      • ๋ฐ˜๋ณต๋ฌธ.

        1
        
          for(let i =0; i<tweets.length; i++){console.log(tweets[i])};
        

        Untitled

  4. ์ฐธ๊ณ  : getElementById()

    1
    2
    3
    
     const getOneTweet = document.getElementById('container')
     const queryOneTweet = document.querySelector('#container')
     console.log(getOneTweet === queryOneTweet) // true
    
    • getElementById์™€ querySelector๋กœ ๊ฐ๊ฐ ๋ฐ›์•„ ์˜จ container ์š”์†Œ๋Š” ํ•˜๋‚˜์˜ ์š”์†Œ
      1. getElementById : querySelector์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•˜๋Š” ์˜ค๋ž˜๋œ ๋ฐฉ์‹-๋ ˆ๊ฑฐ์‹œ
      2. ๋งŒ์•ฝ ์ด์ „ ๋ฒ„์ „์˜ ๋ธŒ๋ผ์šฐ์ €(์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ) ํ˜ธํ™˜์„ฑ์„ ์‹ ๊ฒฝ ์จ์•ผ ํ•œ๋‹ค๋ฉด, ์ด๋Ÿฐ ์˜›๋‚  ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Œ. ์‹ค์ œ ๋™์ž‘์€ ๋™์ผํ•˜๋‹ˆ ์ด๋Ÿฐ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ ์ •๋„๋Š” ์•Œ์•„๋‘๊ธฐ
  5. querySelector๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์š”์†Œ ์ถ”๊ฐ€
    1. tweetDiv๋ฅผ container์˜ ๋งˆ์ง€๋ง‰ ์ž์‹ ์š”์†Œ๋กœ ์ถ”๊ฐ€

      1
      2
      3
      
       const queryOneTweet = document.querySelector('#container')
       container.append(tweetDiv);
       // === queryOneTweet.append(tweetDiv);
      
      1. tweetDiv ์ƒ์„ฑ (Create) : const tweetDiv = document.createElement(โ€˜divโ€™);

        Untitled

        Untitled

      2. const queryOneTweet = document.querySelector(โ€˜#containerโ€™), container.append(tweetDiv);

        Untitled

        Untitled

update

  1. classList.add
    1. Read 5๋ฒˆ์—์„œ ์ถ”๊ฐ€ํ•œ tweetDiv

      1
      2
      3
      
       const tweetDiv = document.createElement('div');
       const queryOneTweet = document.querySelector('#container');
       container.append(tweetDiv);
      

      Untitled

    2. tweetDiv.classList.add(โ€™tweetaโ€™)

      Untitled

      1. querySelector๋กœ ์ถ”๊ฐ€ํ•œ tweeta ํด๋ž˜์Šค๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.

        Untitled

      2. tweeta ํด๋ž˜์Šค์— tweet ํด๋ž˜์Šค๊นŒ์ง€ ์ถ”๊ฐ€

        Untitled

        Untitled

Delete

  1. ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ
    1. id๊ฐ€ container์ธ ์š”์†Œ ์•„๋ž˜์— tweetDiv๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , remove๋กœ ์‚ญ์ œ

      1
      2
      3
      4
      
       const container = document.querySelector('#container')
       const oneDiv = document.createElement('div')
       container.append(oneDiv)
       oneDiv.remove() // ์ด๋ ‡๊ฒŒ append ํ–ˆ๋˜ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
      

      -xqqRNSO8-1597041273061.gif

  2. ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž์‹ ์š”์†Œ๋ฅผ ์‚ญ์ œ - innerHTML , removeChild
    1. innerHTML

      ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ชจ๋“  ์ž์‹ ์š”์†Œ๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ์Œ

      1
      
       document.querySelector('#container').innerHTML = '';
      

      But, innerHTML์€ ๋ณด์•ˆ์—์„œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.

    2. removeChild
      1. ๋ชจ๋“  ์ž์‹ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด, ๋ฐ˜๋ณต๋ฌธ(while, for, etc.)์„ ํ™œ์šฉ
        1. ๋ชจ๋“  ์ž์‹์š”์†Œ ์‚ญ์ œ : removeChild์™€ while์„ ์ด์šฉํ•ด ์ž์‹ ์š”์†Œ๋ฅผ ์‚ญ์ œ

          1
          2
          3
          4
          
           const container = document.querySelector('#container');
           while (container.firstChild) {
             container.removeChild(container.firstChild);
           }
          
          1. ์ž์‹ ์š”์†Œ๊ฐ€ ๋‚จ์•„์žˆ์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€, ์ฒซ ๋ฒˆ์งธ ์ž์‹ ์š”์†Œ๋ฅผ ์‚ญ์ œ
          2. ์ œ๋ชฉ์— ํ•ด๋‹นํ•˜๋Š” H2 โ€œTweet Listโ€๊นŒ์ง€ ์‚ญ์ œ๋จ

            Untitled

        2. H2 โ€œTweet Listโ€๋งŒ ๋‚จ๊ธฐ๊ณ  ์‚ญ์ œ

          1
          2
          3
          4
          
          const container = document.querySelector('#container');
          while (container.children.length > 1) {
            container.removeChild(container.lastChild);
          }
          
    3. ํด๋ž˜์Šค ์ด๋ฆ„์ด tweet์ธ ์š”์†Œ๋งŒ ์ฐพ์•„์„œ ์ œ๊ฑฐ

      1
      2
      3
      4
      5
      6
      7
      8
      
       const tweets = document.querySelectorAll('.tweet')
       tweets.forEach(function(tweet){
           tweet.remove();
       })
       // or
       for (let tweet of tweets){
           tweet.remove()
       }
      

JQuery

  1. Create
    1. JavaScript์˜ document.createElement์— ํ•ด๋‹นํ•˜๋Š” jQuery ์ฝ”๋“œ๋Š” $('<ํƒœ๊ทธ๋ช…>')
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     $('<div>')
        
     //๋ณ€์ˆ˜์— ํ• ๋‹น
     const tweetDiv = $('<div>')
     const $oneDiv = $('<div></div>');
        
     //textContent๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌธ์ž์—ด ์ž…๋ ฅ
     $oneDiv.text('dev');
     console.log($oneDiv); // <div>dev</div>
    
  2. Append

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
     //์š”์†Œ๋ฅผ body์— ์ถ”๊ฐ€
     $('body').append(tweetDiv);
        
     //๋‚ด์šฉ ์ถ”๊ฐ€
     tweetDiv.text('์ƒˆ๋กœ์šด ํŠธ์œ— ๋‚ด์šฉ');
        
     //html ๋‚ด์šฉ ์ถ”๊ฐ€
     tweetDiv.html('<strong>์ƒˆ๋กœ์šด ํŠธ์œ— ๋‚ด์šฉ</strong>');
        
     //์š”์†Œ๋ฅผ ํŠน์ • ์ปจํ…Œ์ด๋„ˆ์— ์ถ”๊ฐ€
     $('#container').append(tweetDiv);
        
     // ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ•œ ์ค„๋กœ (html ์ œ์™ธ)
     $('<div></div>').text('์ƒˆ๋กœ์šด ํŠธ์œ— ๋‚ด์šฉ').appendTo('body');
        
     //class ์ถ”๊ฐ€
     $oneDiv.addClass('tweet');
     console.log($oneDiv); // <div class="tweet">dev</div>
        
     //#container์— oneDiv๋ฅผ ์ถ”๊ฐ€
     $('#container').append($oneDiv);
        
     // ์ฝ˜์†”์— $oneDiv์˜ HTML ์ฝ”๋“œ ์ถœ๋ ฅํ•˜์—ฌ ํ™•์ธ
     console.log($oneDiv.prop('outerHTML'));
        
    
    • class์™€ id ์™ธ์— ๋‹ค๋ฅธ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, .attr() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉ
      • oneDiv.attr('data-custom', 'value')์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜์—ฌ data-custom ์†์„ฑ์„ ์ถ”๊ฐ€
  3. Select

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
     //ํด๋ž˜์Šค ์ด๋ฆ„์ด tweet์ธ ์š”์†Œ ์ค‘ ์ฒซ๋ฒˆ์งธ ์š”์†Œ ์กฐํšŒ
     const oneTweet = $('.tweet').first();
        
     //ํด๋ž˜์Šค ์ด๋ฆ„์ด tweet์ธ ๋ชจ๋“  ์š”์†Œ ์กฐํšŒ
     const tweets = $('.tweet');
        
     //**.each()** ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ๋ฐ˜๋ณต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
     tweets.each(function(index, element) {
         console.log(index);
     		console.log(element);
     });
        
     //์š”์†Œ์— ํด๋ž˜์Šค ์ถ”๊ฐ€ํ•˜๊ณ  ๋ถ€๋ชจ ์š”์†Œ์— ์ถ”๊ฐ€ํ•˜๊ธฐ
     $('<div></div>') // ์ƒˆ๋กœ์šด div ์š”์†Œ ์ƒ์„ฑ
         .addClass('tweet') // tweet ํด๋ž˜์Šค ์ถ”๊ฐ€
         .appendTo('#container'); // #container ์š”์†Œ์˜ ๋งˆ์ง€๋ง‰ ์ž์‹์œผ๋กœ ์ถ”๊ฐ€
    
  4. Delete

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
     //tweetDiv ์ถ”๊ฐ€ ํ›„ ์‚ญ์ œํ•˜๊ธฐ
     $('#container').append('<div id="tweetDiv"></div>');
     $('#tweetDiv').remove();
        
     //#container ์•„๋ž˜ ๋ชจ๋“  ์š”์†Œ ์‚ญ์ œํ•˜๊ธฐ
     $('#container').empty();
        
     //๋ชจ๋“  ์ž์‹ ์š”์†Œ ์‚ญ์ œํ•˜๊ธฐ (while ์‚ฌ์šฉ)
     const $container = $('#container');
     while ($container.children().length > 1) {
       $container.children().first().remove();
     }
        
     //#container์˜ ์ž์‹ ์š”์†Œ ์ค‘ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋งŒ ๋‚จ๊ธฐ๊ธฐ
     const $container = $('#container');
     while ($container.children().length > 1) {
       $container.children().first().remove();
     }
        
     //ํด๋ž˜์Šค ์ด๋ฆ„์ด tweet์ธ ์š”์†Œ๋งŒ ์ฐพ์•„์„œ ์ œ๊ฑฐํ•˜๊ธฐ
     $('.tweet').remove();
    

์ด๋ฒคํŠธ๊ฐ์ฒด

์ด๋ฒคํŠธ ๊ฐ์ฒด๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ(onclick, onkeyup, onscroll ๋“ฑ)์„ ํŠธ๋ฆฌ๊ฑฐ๋กœ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ ์ •๋ณด๋ฅผ ๋‹ด์€ ๊ฐ์ฒด

JS

[keydown๊ณผ keyup](https://www.notion.so/JS-DOM-04fb95218a244052a4ecd3bbaad97e55?pvs=21) / mouseover์™€ mouseout / load ์ด๋ฒคํŠธ / scroll ์ด๋ฒคํŠธ / ํด๋ฆญ ์ด๋ฒคํŠธ

dbclick / [mousenter](https://www.notion.so/JS-DOM-04fb95218a244052a4ecd3bbaad97e55?pvs=21) / [mouseleave](https://www.notion.so/JS-DOM-04fb95218a244052a4ecd3bbaad97e55?pvs=21)

[keypress](https://www.notion.so/JS-DOM-04fb95218a244052a4ecd3bbaad97e55?pvs=21) / focus / blur

input / change / submit

resize / unload / contextmenu

JS

  1. keydown๊ณผ keyup ์ด๋ฒคํŠธ
    1. addEventListener

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      
       <!DOCTYPE html>
       <html>
       <body>
              
       <p>ํ‚ค๋ณด๋“œ๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋†“์œผ๋ฉด ์•Œ๋ฆผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.</p>
              
       <script>
       document.addEventListener("keydown", function(event) {
         console.log("ํ‚ค ๋‹ค์šด: " + event.key);
       });
              
       document.addEventListener("keyup", function(event) {
         console.log("ํ‚ค ์—…: " + event.key);
       });
       </script>
              
       </body>
       </html>
              
      
    2. on์ด๋ฒคํŠธํ•จ์ˆ˜

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      
       <html>
       <body>
              
       <input type="text" id="keyInput">
              
       <script>
       var input = document.getElementById("keyInput");
              
       input.onKeydown = function() {
         console.log('ํ‚ค ๋‹ค์šด');
       };
              
       input.onkeyup = function() {
         console.log('ํ‚ค ์—…');
       };
       </script>
              
       </body>
       </html>
              
      
  2. mouseover์™€ mouseout ์ด๋ฒคํŠธ
    1. addEventListener

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      
       <html>
       <body>
              
       <div id="hoverMe" style="width: 200px; height: 100px; background-color: yellow;">
         ์—ฌ๊ธฐ์— ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๋‹ค ๋Œ€์„ธ์š”.
       </div>
              
       <script>
       var element = document.getElementById("hoverMe");
       element.addEventListener("mouseover", function() {
         console.log('๋งˆ์šฐ์Šค ์˜ค๋ฒ„');
       });
       element.addEventListener("mouseout", function() {
         console.log('๋งˆ์šฐ์Šค ์•„์›ƒ');
       });
       </script>
              
       </body>
       </html>
      
    2. on์ด๋ฒคํŠธํ•จ์ˆ˜

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      
       <!DOCTYPE html>
       <html>
       <body>
              
       <div id="hoverMe" style="width: 200px; height: 100px; background-color: yellow;">
         ์—ฌ๊ธฐ์— ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๋‹ค ๋Œ€์„ธ์š”.
       </div>
              
       <script>
       var div = document.getElementById("hoverMe");
              
       div.onmouseover = function() {
         console.log('๋งˆ์šฐ์Šค ์˜ค๋ฒ„');
       };
              
       div.onmouseout = function() {
         console.log('๋งˆ์šฐ์Šค ์•„์›ƒ');
       };
       </script>
              
       </body>
       </html>
      
  3. load ์ด๋ฒคํŠธ
    1. addEventListener

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      
       <!DOCTYPE html>
       <html>
       <body>
              
       <p>์ด ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋˜๋ฉด ์ฝ˜์†”์— ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.</p>
              
       <script>
       window.addEventListener("load", function() {
         console.log('ํŽ˜์ด์ง€ ๋กœ๋“œ ์™„๋ฃŒ');
       });
       </script>
              
       </body>
       </html>
      
    2. on์ด๋ฒคํŠธํ•จ์ˆ˜

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      
       <!DOCTYPE html>
       <html>
       <body>
              
       <script>
       window.onload = function() {
         console.log('ํŽ˜์ด์ง€ ๋กœ๋“œ๋จ');
       };
       </script>
              
       </body>
       </html>
      
  4. scroll ์ด๋ฒคํŠธ
    1. addEventListener

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      
       <!DOCTYPE html>
       <html>
       <body>
              
       <div style="height: 1000px">
         ์ด ํŽ˜์ด์ง€๋ฅผ ์Šคํฌ๋กคํ•˜๋ฉด ์ฝ˜์†”์— ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
       </div>
              
       <script>
       window.addEventListener("scroll", function() {
         console.log('์Šคํฌ๋กค ๋ฐœ์ƒ');
       });
       </script>
              
       </body>
       </html>
      
    2. on์ด๋ฒคํŠธํ•จ์ˆ˜

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      
              
       <!DOCTYPE html>
       <html>
       <body>
              
       <div id="scrollable" style="width: 100%; height: 100px; overflow: auto;">
         <div style="height: 500px;">
           ์Šคํฌ๋กคํ•ด ๋ณด์„ธ์š”.
         </div>
       </div>
              
       <script>
       var scrollableDiv = document.getElementById("scrollable");
              
       scrollableDiv.onscroll = function() {
         console.log('์Šคํฌ๋กค ๋ฐœ์ƒ');
       };
       </script>
              
       </body>
       </html>
      
  5. ํด๋ฆญ ์ด๋ฒคํŠธ
    1. addEventListener

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      
       <!DOCTYPE html>
       <html>
       <body>
              
       <button id="clickMe">ํด๋ฆญํ•˜์„ธ์š”</button>
              
       <script>
       document.getElementById("clickMe").addEventListener("click", function() {
         alert('๋ฒ„ํŠผ ํด๋ฆญ๋จ!');
       });
       </script>
              
       </body>
       </html>
              
      
    2. on์ด๋ฒคํŠธํ•จ์ˆ˜

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      
       <!DOCTYPE html>
       <html>
       <body>
              
       <button id="clickButton">ํด๋ฆญํ•˜์„ธ์š”</button>
              
       <script>
       var button = document.getElementById("clickButton");
              
       button.onclick = function() {
         console.log('๋ฒ„ํŠผ ํด๋ฆญ๋จ');
       };
       </script>
              
       </body>
       </html>
      

์ด์™ธ JavaScript์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ

๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ

  1. dblclick: ๋”๋ธ” ํด๋ฆญ ์ด๋ฒคํŠธ

    1
    2
    3
    4
    
     element.addEventListener('dblclick', function(event) {
         console.log('Element was double-clicked');
     });
        
    
  2. mouseenter: ๋งˆ์šฐ์Šค ์ปค์„œ๊ฐ€ ์š”์†Œ์— ๋“ค์–ด๊ฐˆ ๋•Œ

    1
    2
    3
    4
    
     element.addEventListener('mouseenter', function(event) {
         console.log('Mouse entered the element');
     });
        
    
  3. mouseleave: ๋งˆ์šฐ์Šค ์ปค์„œ๊ฐ€ ์š”์†Œ์—์„œ ๋‚˜๊ฐˆ ๋•Œ

    1
    2
    3
    4
    5
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     element.addEventListener('mouseleave', function(event) {
         console.log('Mouse left the element');
     });
        
    

ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ

  1. keypress: ํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ณ  ์žˆ์„ ๋•Œ (deprecated, keydown์ด๋‚˜ keyup ์‚ฌ์šฉ ๊ถŒ์žฅ)

    1
    2
    3
    4
    5
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     document.addEventListener('keypress', function(event) {
         console.log('Key is being pressed:', event.key);
     });
        
    

ํฌ์ปค์Šค ์ด๋ฒคํŠธ

  1. focus: ์š”์†Œ๊ฐ€ ํฌ์ปค์Šค๋ฅผ ๋ฐ›์„ ๋•Œ

    1
    2
    3
    4
    5
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     element.addEventListener('focus', function(event) {
         console.log('Element received focus');
     });
        
    
  2. blur: ์š”์†Œ๊ฐ€ ํฌ์ปค์Šค๋ฅผ ์žƒ์„ ๋•Œ

    1
    2
    3
    4
    5
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     element.addEventListener('blur', function(event) {
         console.log('Element lost focus');
     });
        
    

์ž…๋ ฅ ์ด๋ฒคํŠธ

  1. input: ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•  ๋•Œ (์ฃผ๋กœ ํ…์ŠคํŠธ ํ•„๋“œ์— ์‚ฌ์šฉ)

    1
    2
    3
    4
    5
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     inputElement.addEventListener('input', function(event) {
         console.log('Input value changed:', event.target.value);
     });
        
    
  2. change: ์š”์†Œ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ (์ฃผ๋กœ ํผ ์š”์†Œ์— ์‚ฌ์šฉ)

    1
    2
    3
    4
    5
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     inputElement.addEventListener('change', function(event) {
         console.log('Input value changed:', event.target.value);
     });
        
    

ํผ ์ด๋ฒคํŠธ

  1. submit: ํผ์ด ์ œ์ถœ๋  ๋•Œ

    1
    2
    3
    4
    5
    6
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     formElement.addEventListener('submit', function(event) {
         event.preventDefault(); // ๊ธฐ๋ณธ ํผ ์ œ์ถœ ๋™์ž‘์„ ๋ง‰์Œ
         console.log('Form was submitted');
     });
        
    

๊ธฐํƒ€ ์ด๋ฒคํŠธ

  1. resize: ์ฐฝ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ

    1
    2
    3
    4
    5
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     window.addEventListener('resize', function(event) {
         console.log('Window was resized');
     });
        
    
  2. unload: ํŽ˜์ด์ง€๊ฐ€ ์–ธ๋กœ๋“œ๋  ๋•Œ

    1
    2
    3
    4
    5
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     window.addEventListener('unload', function(event) {
         console.log('Page is being unloaded');
     });
        
    
  3. contextmenu: ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•  ๋•Œ

    1
    2
    3
    4
    5
    6
    
     javascript์ฝ”๋“œ ๋ณต์‚ฌ
     element.addEventListener('contextmenu', function(event) {
         event.preventDefault(); // ๊ธฐ๋ณธ ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด๋ฅผ ๋ง‰์Œ
         console.log('Right-clicked on the element');
     });
        
    

JQuery

keydown๊ณผ keyup ์ด๋ฒคํŠธ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(document).on("keydown", function(event) {
  console.log("ํ‚ค ๋‹ค์šด: " + event.key);
});

$(document).on("keyup", function(event) {
  console.log("ํ‚ค ์—…: " + event.key);
});

// Input ์˜ˆ์ œ
$("#keyInput").keydown(function() {
  console.log('ํ‚ค ๋‹ค์šด');
});

$("#keyInput").keyup(function() {
  console.log('ํ‚ค ์—…');
});

2. mouseover์™€ mouseout ์ด๋ฒคํŠธ

1
2
3
4
5
6
7
$("#hoverMe").mouseover(function() {
  console.log('๋งˆ์šฐ์Šค ์˜ค๋ฒ„');
});

$("#hoverMe").mouseout(function() {
  console.log('๋งˆ์šฐ์Šค ์•„์›ƒ');
});

3. load ์ด๋ฒคํŠธ

1
2
3
4
5
6
7
8
9
$(window).on("load", function() {
  console.log('ํŽ˜์ด์ง€ ๋กœ๋“œ ์™„๋ฃŒ');
});

// onLoad๋Š” ๋ฌธ์„œ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ํŠน์ • ์š”์†Œ์— ๋Œ€ํ•ด์„œ๋Š” jQuery์—์„œ ์ง์ ‘์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
// ๋Œ€์‹ , DOM์ด ์ค€๋น„๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” $(document).ready()๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$(document).ready(function() {
  console.log('๋ฌธ์„œ ์ค€๋น„๋จ');
});

4. scroll ์ด๋ฒคํŠธ

1
2
3
4
5
6
7
8
$(window).scroll(function() {
  console.log('์Šคํฌ๋กค ๋ฐœ์ƒ');
});

// ํŠน์ • ์š”์†Œ์— ๋Œ€ํ•œ ์Šคํฌ๋กค ์ด๋ฒคํŠธ
$("#scrollable").scroll(function() {
  console.log('์Šคํฌ๋กค ๋ฐœ์ƒ');
});

5. ํด๋ฆญ ์ด๋ฒคํŠธ

1
2
3
4
5
6
7
8
$("#clickMe").click(function() {
  alert('๋ฒ„ํŠผ ํด๋ฆญ๋จ!');
});

// ๋˜๋Š” on ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ
$("#clickButton").on("click", function() {
  console.log('๋ฒ„ํŠผ ํด๋ฆญ๋จ');
});

javascript ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ๋‹ค๋ฅธ ๊ธ€ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

Leave a comment