๐Ÿ”ฅ [UIUX] 0201 JAVASCRIPT Coding, ์ฝ”๋”ฉ ์ดˆ๊ธ‰~๊ณ ๊ธ‰ 17

You_Jin.ยท2025๋…„ 2์›” 1์ผ
1
post-thumbnail

โœ๏ธ 2025. 2์›” 01์ผ / javascript ์ดˆ๊ธ‰~๊ณ ๊ธ‰ 17

๐Ÿ‘ป DOM์œผ๋กœ ํƒœ๊ทธ ๊ฐ€์ ธ์˜ค๊ธฐ
1. getElementById()๋ฉ”์„œ๋“œ
html์—์„œ id๋Š” ํƒœ๊ทธ์˜ ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
getElementById()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํƒœ๊ทธ๋ฅผ ์„ ํƒํ•ด์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
์ฆ‰, ํƒœ๊ทธ๋ฅผ ํ•˜๋‚˜๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.
์ด๋ฏธ ๋งค์„œ๋“œ์— id๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค๋Š” ์‚ฌ์‹ค์ด ๋ช…์‹œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ #์€ ์“ฐ์ง€ ์•Š๊ณ  ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

      [๊ธฐ๋ณธํ˜•]
      document.getElementById('์•„์ด๋””๋ช…')

2. getElementByClassName()๋ฉ”์„œ๋“œ
getElementByClassName()๋ฉ”์„œ๋“œ๋Š” ์ง€์ •ํ•œ class์„ ํƒ์ž ์ด๋ฆ„์ด ๋“ค์–ด์žˆ๋Š”
html์š”์†Œ์— ์ ‘๊ทผํ•œ๋‹ค. ๋ฉ”์„œ๋“œ ์ด๋ฆ„์— ํด๋ž˜์Šค ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์˜ค๊ฒ ๋‹ค๊ณ  ๋ช…์‹œ
๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ .์€ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค. ๋˜ํ•œ ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž์—ด์˜ ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.
getElementByClassName()๋ฉ”์„œ๋“œ๋กœ ํƒœ๊ทธ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ํด๋ž˜์Šค ์ด๋ฆ„์ด ๊ฐ™์€
DOM์š”์†Œ๋“ค์„ HTMLCollection๊ฐ์ฒด์— ์ €์žฅํ•œ๋‹ค.
HTMLCollection๊ฐ์ฒด๋Š” ๋ฐฐ์—ด๊ณผ
๋น„์Šทํ•œ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๊ณ , ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋„ ๋ถ€์—ฌ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐฐ์—ด์ฒ˜๋Ÿผ
์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์€ ์•„๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฐฐ์—ด๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

      [๊ธฐ๋ณธํ˜•]
      document.getElementByClassName('ํด๋ž˜์Šค๋ช…')

3. getElementByTagName()๋ฉ”์„œ๋“œ
class๋‚˜ id๋กœ ์ด๋ฆ„์ด ์ง€์ •๋˜์ง€ ์•Š๋Š” ์ผ๋ฐ˜ ํƒœ๊ทธ๋“ค์„ ๋ถˆ๋Ÿฌ์˜ฌ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.
ํŠน์ • ํƒœ๊ทธ๋“ค์„ ํ•œ๊บผ๋ฒˆ์— ๋ถˆ๋Ÿฌ์˜ฌ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ HTMLCollection๊ฐ์ฒด์— ์ €์žฅ๋œ๋‹ค.

      [๊ธฐ๋ณธํ˜•]
      document.getElementByTagName('ํƒœ๊ทธ๋ช…')

4.querySelector()๋ฉ”์„œ๋“œ , querySelectorAll()๋ฉ”์„œ๋“œ
์œ„์— ์žˆ๋Š” getElementBy~๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜๊ฐ’(์ €์žฅ์žฅ์†Œ)๋Š” HTMLCollection๊ฐ์ฒด์ด๋‹ค.
์—ฌ๊ธฐ์—๋Š” HTML์š”์†Œ('p'๋‚˜ 'a'๊ฐ™์€ ํ˜•ํƒœ)๋งŒ ์ €์žฅ๋œ๋‹ค.
DOMํŠธ๋ฆฌ์˜ ํ…์ŠคํŠธ๋‚˜ ์†์„ฑ๋…ธ๋“œ๊นŒ์ง€ ์ž์œ ๋กญ๊ฒŒ ์ ‘๊ทผํ•˜๊ณ  ์ œ์–ดํ•˜๋ ค๋ฉด
querySelector()๋ฉ”์„œ๋“œ, querySelectorAll()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
id์„ ํƒ์ž์ฒ˜๋Ÿผ ๋ฐ˜ํ™˜๊ฐ’์ด 1๊ฐœ๋ผ๋ฉด querySelector()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ,
class์„ ํƒ์ž๋‚˜ ํƒœ๊ทธ๋ช… ์„ ํƒ์ž์ฒ˜๋Ÿผ ๋ฐ˜ํ™˜๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด querySelectorAll()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
querySelector()๋ฉ”์„œ๋“œ ๋˜๋Š” querySelectorAll()๋ฉ”์„œ๋“œ๋กœ ์„ ํƒ์ž๋ฅผ ํ‘œํ˜„ํ• ๋•Œ์—๋Š”
#๋˜๋Š” .์„ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ  ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ํƒœ๊ทธ๋Š” ๊ธฐํ˜ธ์—†์ด ๋ถˆ๋Ÿฌ์˜ค๋ฉด
๋œ๋‹ค. querySelector, querySelectorAll๋กœ ๋ฐ๋ ค์˜ค๋Š” ๋ชจ๋“  ๋ฐ˜ํ™˜๊ฐ’(=ํƒœ๊ทธ)๋Š” NodeList
๋ผ๋Š” ๊ณต๊ฐ„์— ์ €์žฅ๋˜๊ณ  ๋…ธ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ๋…ธ๋“œ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์ €์žฅํ•œ ๊ฒƒ์œผ๋กœ ๋ฐฐ์—ด๊ณผ ๋น„์Šทํ•œ ํ˜•ํƒœ๋กœ
์ƒ๊ฒผ๋‹ค. ํ•˜์ง€๋งŒ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐฐ์—ด์€ ์•„๋‹ˆ๋‹ค.

      [๊ธฐ๋ณธํ˜•]
      - querySelector๋Š” ์ œ์ผ ๋จผ์ € ๋“ฑ์žฅํ•˜๋Š” ํƒœ๊ทธ 1๊ฐœ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
      document.querySelector('#์•„์ด๋””๋ช…');
      document.querySelector('.ํด๋ž˜์Šค๋ช…');
      document.querySelector('ํƒœ๊ทธ๋ช…');
      - ํ•ด๋‹น ํด๋ž˜์Šค๋ช…์ด๋‚˜ ํƒœ๊ทธ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ฌ๋•Œ
      document.querySelectorAll('.ํด๋ž˜์Šค๋ช…');
      document.querySelectorAll('ํƒœ๊ทธ๋ช…');

๐Ÿ‘ป ์›น์š”์†Œ์˜ ๋‚ด์šฉ ์ˆ˜์ •ํ•˜๊ธฐ
htmlํƒœ๊ทธ์•ˆ์— ๋“ค์–ด์žˆ๋Š” src๋‚˜ alt์™€ ๊ฐ™์€ ์†์„ฑ๋“ค์€ attribute(node)๋ผ๊ณ  ํ‘œํ˜„ํ•˜๊ณ 
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ๋“ค์€ property๋ผ๊ณ  ํ•œ๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์›น ์š”์†Œ์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€
innerText๋‚˜ innerHTMLํ”„๋กœํผํ‹ฐ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฆ„๋งŒ ๋ด๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด
innerText๋Š” ํ…์ŠคํŠธ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ  innerHTML์€ ํƒœ๊ทธ๊นŒ์ง€ ๋ฐ˜์˜ํ•˜์—ฌ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•œ๋‹ค.

      1. innerText
      ------------------------------
      ์š”์†Œ.innerText = ๋‚ด์šฉ;
      2. innerHTML
      -----------------------------
      ์š”์†Œ.innerHTML = ๋‚ด์šฉ;

๐Ÿ‘ป ํƒœ๊ทธ์˜ ์†์„ฑ ์ˆ˜์ •ํ•˜๊ธฐ
์›น ์š”์†Œ๋ฅผ ๋ฌธ์„œ์— ์‚ฝ์ž…ํ• ๋•Œ ํƒœ๊ทธ ์†์„ฑ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด DOMํŠธ๋ฆฌ์— ์†์„ฑ
๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ ์†์„ฑ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค. ์ด๋•Œ ์†์„ฑ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด
getAttribute()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์†์„ฑ์„ ์ˆ˜์ •ํ•˜๋ ค๋ฉด setAttribute()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

      [๊ธฐ๋ณธํ˜•]
      ์š”์†Œ.getAttribute('์†์„ฑ๋ช…'); 
      : ํ•ด๋‹น ์š”์†Œ์˜ ์†์„ฑ์— ์ ‘๊ทผํ•˜์—ฌ ์ง€์ •๋œ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.
      ์š”์†Œ.setAttribute('์†์„ฑ๋ช…','๋ฐ”๊ฟ€ ๊ฐ’');
      : ํ•ด๋‹น ์š”์†Œ์˜ ์†์„ฑ์— ์ ‘๊ทผํ•˜์—ฌ ์ง€์ •๋œ ๊ฐ’์„ ์ƒˆ ๊ฐ’์œผ๋กœ ๋ฐ”๊พผ๋‹ค.


๐Ÿ‘ป ์ด๋ฒคํŠธ ๊ฐ์ฒด
์ด๋ฒคํŠธ ๊ฐ์ฒด๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์•ˆ์— ํฌํ•จ๋œ ๊ฐ์ฒด๋กœ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ƒ์„ฑ๋œ๋‹ค.
event๊ฐ์ฒด์—๋Š” ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋œ ๋Œ€์ƒ(ํƒœ๊ทธ)์— ์ ‘๊ทผํ• ๋•Œ this๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

      [์ด๋ฒคํŠธ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ]
      - altKey : ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ alt๊ฐ€ ๋ˆŒ๋ ธ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ boolean๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - ctrlKey : ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ctrl์ด ๋ˆŒ๋ ธ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ boolean๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - shiftKey : ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ shiftKey๊ฐ€ ๋ˆŒ๋ ธ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ boolean๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - button : ๋งˆ์šฐ์Šค์—์„œ ๋ˆ„๋ฅธ ํ‚ค ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.(์™ผ์ชฝ :0, ํœ  :1, ์˜ค๋ฅธ์ชฝ :2)
      - charCode : keypress์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ์–ด๋–ค ํ‚ค๋ฅผ ๋ˆŒ๋ €๋Š”์ง€ ์œ ๋‹ˆ์ฝ”๋“œ๊ฐ’์œผ๋กœ ํ‚ค์˜ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - clientX, clientY : ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ์š”์†Œ์˜ X์ขŒํ‘œ ์œ„์น˜์™€ Y์ขŒํ‘œ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - pageX, pageY : ํ˜„์žฌ ๋ฌธ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ X์ขŒํ‘œ ์œ„์น˜์™€ Y์ขŒํ‘œ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - screenX, screenY : ํ˜„์žฌ ํ™”๋ฉด์„ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ X์ขŒํ‘œ ์œ„์น˜์™€ Y์ขŒํ‘œ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - target : ์ด๋ฒคํŠธ๊ฐ€ ์ตœ์ดˆ๋กœ ๋ฐœ์ƒํ•œ ๋Œ€์ƒ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - timeStamp : ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - type : ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      - which : ํ‚ค๋ณด๋“œ์™€ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ํ‚ค์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      [๋ฉ”์„œ๋“œ]
      - preventDefault() : ๊ธฐ๋ณธ์ด๋ฒคํŠธ๋ฅผ ์ทจ์†Œํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
      - stopPropergation() : ๊ธฐ๋ณธ์ด๋ฒคํŠธ๋ฅผ ์ทจ์†Œํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

profile
๐ŸŽง แด˜สŸแด€สษชษดษข: UXUI (Feat: coding) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โšชโ”€โ”€โ”€โ”€โ”€ ๐Ÿธ:๐Ÿท๐Ÿพ / ๐Ÿน:๐Ÿป๐Ÿผโ € ใ…ค โ—„โ—„โ €โ–โ–โ €โ–บโ–บ โ”€โ”€โ”€โ—‹ ๐Ÿ”Š

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