JS - DOM

์ด๋ฐ”๋•ยท2024๋…„ 2์›” 5์ผ
0

Javascript ์ด๋ก 

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

๐Ÿ“ŒDOM์ด๋ž€?

DOM์€ ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(Document Object Model)์„ ์กฐ์ž‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” JavaScript์˜ API(์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค)์ž…๋‹ˆ๋‹ค. DOM์€ HTML, XML ๋˜๋Š” ๋‹ค๋ฅธ ๋ฌธ์„œ ์œ ํ˜•์˜ ๊ตฌ์กฐํ™”๋œ ํ‘œํ˜„์„ ์ƒ์„ฑํ•˜๊ณ  ํ•ด๋‹น ๋ฌธ์„œ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

๋„ˆ๋ฌด ์–ด๋ ค์šด ๋ง์ด์ง€๋งŒ, ๋œป ๋ณด๋‹ค๋Š” DOM์„ ์‚ฌ์šฉํ•ด๋ณด๋ฉด ์นœ์ˆ™ํ•ด์งˆ๊ฒƒ๊ฐ™๋‹ค.

๐Ÿ”Ž ์š”์†Œ ๊ฒ€์ƒ‰ํ•˜๊ธฐ
๐Ÿ”Ž ์ฃผ์š” node ํ”„๋กœํผํ‹ฐ
๐Ÿ”Ž ์†์„ฑ๊ณผ ํ”„๋กœํผํ‹ฐ
๐Ÿ”Ž ๋ฌธ์„œ ์ˆ˜์ •ํ•˜๊ธฐ
๐Ÿ”Ž ์Šคํƒ€์ผ๊ณผ ํด๋ž˜์Šค


๐Ÿ“์š”์†Œ ๊ฒ€์ƒ‰ํ•˜๊ธฐ

๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒ์ž๋Š” CSS ์„ ํƒ์ž์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋ฉฐ, ์›ํ•˜๋Š” ๋Œ€์ƒ์„ ์ •ํ™•ํ•˜๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์—…์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์„ ์ •๋ฆฌํ•ด๋ณผ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ •๋ฆฌํ•˜๊ธฐ์ „์— ์•Œ์•„๋‘ฌ์•ผํ•  ๋‹จ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

document : ์›น ํŽ˜์ด์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด๋กœ์„œ, ์›น ํŽ˜์ด์ง€์˜ ์ „์ฒด ๊ตฌ์กฐ์™€ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์ธ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•˜๋Š” DOM์˜ ์ตœ์ƒ์œ„ ๊ฐ์ฒด

๊ฐ„๋‹จํ•˜๊ฒŒ html์ „์ฒด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

const first =  document.querySelector('.first');
const first =  document.querySelector('#first');
//querySelector : ์ฃผ์–ด์ง„ CSS ์„ ํƒ์ž์— ํ•ด๋‹นํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

const first =  document.querySelectorAll('.first');
const first =  document.querySelectorAll('#first');
//querySelectorAll: ์ฃผ์–ด์ง„ CSS ์„ ํƒ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ NodeList๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์ด ์‚ฌ์šฉํ•˜์ง„ ์•Š์ง€๋งŒ ์•Œ์•„๋‘ฌ์•ผํ•  ๋ฉ”์„œ๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

const second = document.getElementById('second')
//getElementById : ์ฃผ์–ด์ง„ ID์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ ๋ฐ˜ํ™˜

const second = document.getElementsByClassName('second')
//getElementsByClassName : ์ฃผ์–ด์ง„ ํด๋ž˜์Šค ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

const second = document.getElementsByTagName('second')
//getElementsByTagName: ์ฃผ์–ด์ง„ ํƒœ๊ทธ ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ์™ธ ๋ฌธ์„œ์˜ ๋Œ€์ƒ์„ ํ™•์ธํ•˜๋Š” ๋ฉ”์„œ๋“œ๋„ ์žˆ๋‹ค.

//target(first)์— selector(span)๊ฐ€ ์žˆ์–ด?
first.matches('span');
// ์ฃผ์–ด์ง„ CSS ์„ ํƒ์ž์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ์—ฌ๋ถ€


// h1 ํƒœ๊ทธ์•ˆ์— .second ๋ผ๋Š” ์ž์‹์ด ์žˆ์–ด?
getNode('h1').contains(getNode('second'));
// ์ฃผ์–ด์ง„ ์š”์†Œ๊ฐ€ ๋‹ค๋ฅธ ์š”์†Œ์˜ ์ž์‹์ธ์ง€ ์—ฌ๋ถ€

first.closest('.second) 
//๋‚˜์™€ ๊ฐ€์žฅ ์ธ์ ‘ํ•œ ์กฐ์ƒ์„ ์ฐพ์•„์คŒ,๋‚˜ ํฌํ•จ.(ํ˜•์ œ๋„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๊ณ  ํ•จ.)

์œ„์—์„œ์˜ getNode๋ž€ querySelector๋กœ ๋งŒ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.(์ˆ˜์—…์—์„œ ๋งŒ๋“ฌ.)


๐Ÿ“์ฃผ์š” Node ํ”„๋กœํผํ‹ฐ

DOM์—์„œ ์š”์†Œ๋ฅผ ์กฐ์ž‘ํ•˜๊ณ  ์ •๋ณด๋ฅผ ์–ป๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ๋“ค์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”Ž Node๋ž€ html์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์š”์†Œ๋ฅผ Node๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค๊ณ  ํ•˜๋‹ˆ ์•Œ์•„๋‘์ž.

์‚ฌ์‹ค ๋ง๋กœ ์„ค๋ช…ํ•˜๊ธฐ ์–ด๋ ค์›Œ์„œ ์ด๊ฒƒ ๋˜ํ•œ ์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ์ต์ˆ™ํ•ด์ ธ์•ผํ• ๊ฒƒ๊ฐ™ใ„ท..ใ…..

๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ Node Type์€ ์•Œ๊ณ ์žˆ์œผ๋ฉด ๋‚˜์˜์ง€ ์•Š๋‹ค ๊ทธ๋ž˜์„œ

๐Ÿ”— MDN ๋งํฌ Node Type

๋ฌธ์„œ๋ฅผ ํ™•์ธํ•ด๋ณด๋Š”๊ฒƒ๋„ ์ข‹์„๊ฒƒ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์„œ๋ฅผ ๋ณด๊ธฐ ๊ท€์ฐฎ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด node type์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

const first = getNode('.first');
//์ฐธ๊ณ ๋กœ first๋Š” h1ํƒœ๊ทธ์•ˆ์— ์žˆ๋Š” span์ด๋‹ค.

console.log(first.nodeType); // 1

node์˜ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์†์„ฑ๋„ ์žˆ๋Š”๋ฐ์š”

console.log(first.nodeName); //SPAN
console.log(first.tagName)  //SPAN

nodeName tagName ์ฐจ์ด

  • tagName ํ”„๋กœํผํ‹ฐ๋Š” ์š”์†Œ ๋…ธ๋“œ์—๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • nodeName์€ ๋ชจ๋“  Node์— ์žˆ์Šต๋‹ˆ๋‹ค.
    -์š”์†Œ ๋…ธ๋“œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ˜ธ์ถœํ•˜๋ฉด tagName๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
    -ํ…์ŠคํŠธ ๋…ธ๋“œ, ์ฃผ์„ ๋…ธ๋“œ ๋“ฑ์—์„  ๋…ธ๋“œ ํƒ€์ž…์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
<body><!-- ์ฃผ์„ -->

  <script>
    // ์ฃผ์„ ๋…ธ๋“œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋‘ ํ”„๋กœํผํ‹ฐ ๋น„๊ต
    alert( document.body.firstChild.tagName ); // undefined (์š”์†Œ๊ฐ€ ์•„๋‹˜)
    alert( document.body.firstChild.nodeName ); // #comment

    // ๋ฌธ์„œ ๋…ธ๋“œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋‘ ํ”„๋กœํผํ‹ฐ ๋น„๊ต
    alert( document.tagName ); // undefined (์š”์†Œ๊ฐ€ ์•„๋‹˜)
    alert( document.nodeName ); // #document
  </script>

</body>

์ด๋ ‡๊ฒŒ ๋‚˜์™€์žˆ์ง€๋งŒ ์‹ค์ œ๋ก  tagName์ด ๋งŽ์ด ์“ฐ์ธ๋‹ค๊ณ  ํ•˜๋‹ˆ ์ฐธ๊ณ ํ•ด์•ผํ• ๊ฒƒ๊ฐ™๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ ์š”์†Œ๋ฅผ ๋น„๊ตํ•  ๊ฒฝ์šฐ toLowerCase๋ฅผ ์“ฐ์ง€ ์•Š์œผ๋ฉด ๋น„๊ต ๋Œ€์ƒ์ด ๋ฌด์กฐ๊ฑด ๋Œ€๋ฌธ์ž๋กœ ์จ์•ผ ๋น„๊ต๊ฐ€ ๋˜๋‹ˆ ์•Œ์•„๋‘ฌ์•ผ๊ฒ ๋‹ค.

node์˜ ์ฝ˜ํ…์ธ  ์ฝ๊ณ  ์“ฐ๊ธฐ

// - innerHTML
// * ๊ธฐ์กด ๋‚ด์šฉ ์‚ญ์ œ
// * ๊ธฐ์กด ๋‚ด์šฉ๊ณผ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์„ ํ•ฉ์นœ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์„ ์”€

// first.innerHTML = ''
//์ž…๋ ฅํ•˜๋ฉด first ๋‚ด์šฉ ์‚ญ์ œ๋จ. ์ฃผ์˜!!

first.innerHTML += '<strong>๋ฉ‹์Ÿ์ด</strong> ์‚ฌ์ž์ฒ˜๋Ÿผ';

// - textContent
// * ์š”์†Œ ๋‚ด์˜ ํ…์ŠคํŠธ์— ์ ‘๊ทผ
// * ํƒœ๊ทธ๋Š” ์ œ์™ธํ•˜๊ณ  ์˜ค๋กœ์ง€ ํ…์ŠคํŠธ๋งŒ ์ถ”์ถœ

first.textContent = '๋ฉ‹์Ÿ์ดํ˜ธ๋ž‘์ด์ฒ˜๋Ÿผ'; // setter

first.textContent; // getter

์œ„์— ๋ฐฉ๋ฒ•์€ ์œ„ํ—˜ํ•œ ๋ฐฉ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜ ๋ฐฉ๋ฒ•์„ ๋” ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

textContent๋กœ ํƒœ๊ทธ ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์ˆœ์ˆ˜ํ•œ ํ…์ŠคํŠธ๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค

<div id="news">
  <h1>์ฃผ์š” ๋‰ด์Šค!</h1>
  <p>ํ™”์„ฑ์ธ์ด ์ง€๊ตฌ๋ฅผ ์นจ๊ณตํ•˜์˜€์Šต๋‹ˆ๋‹ค!</p>
</div>
 alert(news.textContent); // ์ฃผ์š” ๋‰ด์Šค! ํ™”์„ฑ์ธ์ด ์ง€๊ตฌ๋ฅผ ์นจ๊ณตํ•˜์˜€์Šต๋‹ˆ๋‹ค!

๐Ÿ“์†์„ฑ๊ณผ ํ”„๋กœํผํ‹ฐ

๋งค์šฐ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ธ๋ฐ์š” ํ”„๋ก ํŠธ์—”๋“œ๊ฐœ๋ฐœ์ž๋“ค ๋ฉด์ ‘ ์งˆ๋ฌธ์ค‘์— ๋งŽ์ด ๋‚˜์˜จ๋‹ค๊ณ  ํ•˜๋‹ˆ ์™ธ์›Œ๋‘ฌ์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • HTML ์†์„ฑ
    ๋ธŒ๋ผ์šฐ์ €๋Š” HTML ํƒœ๊ทธ๋ฅผ ํ•ด์„ํ•ด DOM ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ HTML ํ‘œ์ค€ ์†์„ฑ์„ ์ธ์‹ํ•˜๊ณ ,
    ์ด ํ‘œ์ค€ ์†์„ฑ์„ ์‚ฌ์šฉํ•ด DOM ํ”„๋กœํผํ‹ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ์†์„ฑ์ด ์•„๋‹Œ ๊ฒฝ์šฐ,
    ์ด์— ๋งคํ•‘ํ•˜๋Š” DOM ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    HTML ์†์„ฑ ๊ฐ’์€ ํ•ญ์ƒ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

  • DOM ํ”„๋กœํผํ‹ฐ
    DOM ๋…ธ๋“œ(DOM node)๋Š” JavaScript ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. DOM ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋Š” ์ผ๋ฐ˜ JavaScript ๊ฐ์ฒด์ฒ˜๋Ÿผ ํ–‰๋™ํ•˜๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ง•์„ ๋ณด์ž…๋‹ˆ๋‹ค.

  • ์–ด๋–ค ๊ฐ’์ด๋“  ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋Œ€ยท์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ฏ€๋กœ elem.nodeType์ด ์•„๋‹Œ, elem.NoDeTyPe๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • DOM ํ”„๋กœํผํ‹ฐ๋Š” HTML ์†์„ฑ๊ณผ ๋‹ฌ๋ฆฌ ๊ฐ’์ด ํ•ญ์ƒ ๋ฌธ์ž์—ด์ด ์•„๋‹™๋‹ˆ๋‹ค.

์†์„ฑ๊ณผ ํ•จ๊ป˜ ์“ฐ์ด๋Š” ๋ฉ”์„œ๋“œ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

/*first์˜ html๋‚ด์šฉ*/
<span class="first" say="hi">hello</span>
const first = getNode('.first');

// - elementNode.hasAttribute(name) โ€“ ์†์„ฑ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ
console.log(first.hasAttribute('id')); // false

// - elementNode.getAttribute(name) โ€“ ์†์„ฑ๊ฐ’์„ ๊ฐ€์ ธ์˜ด
console.log(first.getAttribute('say')); //hi

// - elementNode.setAttribute(name, value) โ€“ ์†์„ฑ๊ฐ’์„ ๋ณ€๊ฒฝํ•จ
first.setAttribute('id', 'text');
first.setAttribute('data-index', '1');
//<span class="first" say="hi" id="text" data-index="1" data-name="tiger">hello</span> ๋ณ€๊ฒฝ

// - elementNode.removeAttribute(name) โ€“ ์†์„ฑ๊ฐ’์„ ์ง€์›€
first.removeAttribute('class'); //class์†์„ฑ์ด ์‚ฌ๋ผ์ง

// - elementNode.attributes โ€“ ์—ด๊ฑฐ ๊ฐ€๋Šฅํ•œ(iterable) ์†์„ฑ ์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•จ
for (const value of first.attributes) {
  console.log(value);
} // say id data-index

๋น„ํ‘œ์ค€ ์†์„ฑ, ํ”„๋กœํผํ‹ฐ ์„ค์ •

  • data-* ์†์„ฑ์€ ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ณ  ์œ ํšจํ•˜๊ฒŒ ์ „๋‹ฌํ•ด์ค๋‹ˆ๋‹ค.
  • data-* ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ๊ธฐ ์‰ฝ๊ณ , ์ˆ˜์ •๋„ ์†์‰ฝ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ id๋‚˜ class๊ฐ™์€ ํ‘œ์ค€์†์„ฑ์ด ์•„๋‹Œ ๋น„ํ‘œ์ค€์†์„ฑ๋“ค์€ ๊ด€๋ก€์ ์œผ๋กœdata๋ฅผ ์ ์–ด์ฃผ๊ฒŒ๋˜์–ด์žˆ์Œ.

first.dataset.name = 'tiger'; 
//setter
console.log(first.dataset);// console.log์— ๋‚˜์˜ค๋Š” ๋‚ด์šฉ์€ ์•„๋ž˜ ์‚ฌ์ง„์œผ๋กœ ๋ณด์—ฌ๋“œ๋ฆด๊ฒŒ์š”
//getter


๐Ÿ“๋ฌธ์„œ ์ˆ˜์ •ํ•˜๊ธฐ

์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์•Œ์•„์•ผํ•˜๋Š” ๋ฉ”์„œ๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์œ„์น˜๋งŒ ์ž˜ ๊ธฐ์–ตํ•ด์ฃผ๋ฉด ์“ฐ๋Š”๋ฐ ์–ด๋ ค์šธ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

insertAdjacentHTML : ์ง€์ •๋œ ์œ„์น˜(position)์— HTML ๋ฌธ์ž์—ด(text)์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“์Šคํƒ€์ผ๊ณผ ํด๋ž˜์Šค

// - className โ€“ ํด๋ž˜์Šค ์ „์ฒด๋ฅผ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ”„๋กœํผํ‹ฐ๋กœ ํด๋ž˜์Šค ์ „์ฒด๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์œ ์šฉ

console.log(first.className); //getter first
//first.className = 'fff' //setter
//first.className = '' //์ „์ฒด์‚ญ์ œ 

์•„๋ž˜์˜ ํด๋ž™์Šค๋Š” ์ˆ˜์—…์— ์ž์ฃผ ๋‚˜์™€์„œ ์•Œ๊ณ ์žˆ๋Š”๊ฒŒ ์ข‹์„๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค.ใ…Žใ…Ž

// - classList โ€“ ํด๋ž˜์Šค ํ•˜๋‚˜๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋กœ ๊ฐœ๋ณ„ ํด๋ž˜์Šค๋ฅผ ์กฐ์ž‘ํ•  ๋•Œ ์œ ์šฉ

first.classList.add('hello'); // hello ํด๋ž˜์Šค ๋”ํ•˜๊ธฐ
first.classList.remove('hello'); // hello ํด๋ž˜์Šค ์ง€์šฐ๊ธฐ
console.log(first.classList.contains('hello'));
//contains : ํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€
// - style.cssText - "style" ์†์„ฑ ์ „์ฒด์— ๋Œ€์‘ํ•˜๋ฏ€๋กœ ์Šคํƒ€์ผ ์ „์ฒด์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด ์ €์žฅ
first.style.cssText = `
display:flex;
margin:10px;
border:1px dotted red;
`;
first.style.background = 'orange'; //setter

console.log(getComputedStyle(first)['backgroundColor']); //getter
//getComputedStyle(element, [pseudoElement]) `์ฝ๊ธฐ ์ „์šฉ`

๐Ÿ”—์ฐธ๊ณ  ์‚ฌ์ดํŠธ
๐Ÿ“chatGPT
๐Ÿ“Javascript info
๐Ÿ“ํƒ€ ๋ธ”๋กœ๊ทธ ๊ธ€..
๐Ÿ“๋ฉ‹์‚ฌ ์ˆ˜์—… ๋‚ด์šฉ...

profile
ํ”„์—” ํ•จ ํ•ด๋ณด์ž๊ณ ์˜ค

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด