c o d i n g . . ๐Ÿ‰/JavaScript

[JavaScript] ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์ •๋ฆฌํ•œ Do it ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธํŽธ(5)

H J 2021. 3. 30. 18:41

8์žฅ

 

๐Ÿ  ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ (DOM) ๐Ÿ 

 

: ์›น ๋ฌธ์„œ์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌธ์„œ๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

 

DOM ํŠธ๋ฆฌ

- ๊ตฌ์กฐ๊ฐ€ ๋‚˜๋ฌด๐ŸŒณ์ฒ˜๋Ÿผ ์ƒ๊ฒผ๋‹ค

 

  • ํƒœ๊ทธ๋ฅผ ์š”์†Œ ๋…ธ๋“œ๋กœ ํ‘œํ˜„
  • ํƒœ๊ทธ๊ฐ€ ํ’ˆ๊ณ  ์žˆ๋Š” ํ…์ŠคํŠธ๋Š” ์ž์‹ ๋…ธ๋“œ์ธ ํ…์ŠคํŠธ ๋…ธ๋“œ๋กœ ํ‘œํ˜„
  • ํƒœ๊ทธ์˜ ์†์„ฑ์€ ์š”์†Œ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ์ธ ์†์„ฑ ๋…ธ๋“œ๋กœ ํ‘œํ˜„
  • ์ฃผ์„์€ ์ฃผ์„ ๋…ธ๋“œ๋กœ ํ‘œํ˜„

DOM ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์‚ฌ์ดํŠธ!

http://software.hixie.ch/utilities/js/live-dom-viewer/

 

Live DOM Viewer

Live DOM Viewer ... Script not loaded. This script puts a function w(s) into the global scope of the test page, where s is a string or object to output to the log. Some files are available for testing purposes, notably "image" is an image. image and image.

software.hixie.ch

 

 

DOM ์š”์†Œ์— ์ ‘๊ทผ

: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ

 

  • getElementById()

id ์„ ํƒ์ž๋กœ ์ ‘๊ทผํ•˜๋Š” ํ•จ์ˆ˜

document.getElementById("heading")

 

  • getElementsByClassName()

class ๊ฐ’์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ํ•จ์ˆ˜

์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๊ณ  ์—ฌ๋Ÿฌ ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ! ํ•˜๋‚˜์˜ ์š”์†Œ์—๋งŒ ์ ‘๊ทผํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ์จ์„œ ์ ‘๊ทผ

document.getElementsByClassName("accent")[0]

 

  • getElementsByTagName()

ํƒœ๊ทธ ์ด๋ฆ„์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ํ•จ์ˆ˜

์—ฌ๋Ÿฌ ์š”์†Œ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ

document.getElementsByTagName("h2")[0]

 

  • querySelector(), querySelectorAll()

๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ํ•จ์ˆ˜(#id, .class, ํƒœ๊ทธ ์ด๋ฆ„์œผ๋กœ ๋ชจ๋‘ ์ ‘๊ทผ ๊ฐ€๋Šฅ)

document.querySelector("#heading")

document.querySelectorAll(".accent") // ์—ฌ๋Ÿฌ ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด querySelectAll ํ•จ์ˆ˜ ์‚ฌ์šฉ

 

* getElement--- ํ•จ์ˆ˜๋“ค์€ ์š”์†Œ ๋…ธ๋“œ๊นŒ์ง€๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

* querySelctor--- ํ•จ์ˆ˜๋“ค์€ ํ…์ŠคํŠธ ๋…ธ๋“œ, ์†์„ฑ ๋…ธ๋“œ๊นŒ์ง€ ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

 

๋”๋ณด๊ธฐ

์š”์†Œ์— ์ ‘๊ทผํ•ด์„œ ์Šคํƒ€์ผ ์ˆ˜์ •

document.querySelector("#heading").style.color="white"

์ด๋Ÿฐ ์‹์œผ๋กœ ์ˆ˜์ • ๊ฐ€๋Šฅ!

 

 

DOM ์š”์†Œ์˜ ์†์„ฑ์— ์ ‘๊ทผ

 

  • getAttribute(), setAttribute()

HTML์˜ ํƒœ๊ทธ ์†์„ฑ์— ์ ‘๊ทผํ•˜๋Š” ํ•จ์ˆ˜

// getAttribute()
document.querySelector("#prod-pic > img").getAttribute("src")

//setAttribute()
document.querySelector("#prod-pic > img").setAttribute("src","images/coffee-blue.jpg")

 

 

DOM์—์„œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

 

์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• ๋ณต์Šต

 

HTML ํƒœ๊ทธ ์•ˆ์—์„œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ ์—ฐ๊ฒฐ

<img id="pic" src="images/girl.png" alt="" onclick="changePic()">

 

DOM ์š”์†Œ์— ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ ์—ฐ๊ฒฐ

var pic = document.querySelector('#pic');
    pic.onclick = changePic;

-> ์š”์†Œ์— ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ๋งŒ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ


  • addEventListener()

-> ์š”์†Œ์— ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ

pic.addEventListener("mouseover",changePic);
pic.addEventListener("mouseout",originPic);

์ด๋ฒคํŠธ ์œ ํ˜•์„ ์ง€์ •ํ•  ๋•Œ๋Š” 'on'์„ ๋ถ™์ด์ง€ ์•Š์Œ!

 

์˜ค์šฐ,,, ๋„ค,,, ์ด์ œ ์‹ค์Šตํ•ด์•ผ์ง€,, ํ•˜ํ•˜,,, 8์‹œ์— ํ”ผ์ž ๋จน๊ธฐ๋กœ ํ–ˆ๋Š”๋ฐ 1์‹œ๊ฐ„ 20๋ถ„ ๋‚จ์•„๋”ฐ!!