๐ท DOM(Document Object Model) ๋ฌธ์๊ฐ์ฒด๋ชจ๋ธ์ ๋ํ์ฌ
DOM์ ๋ํด ๊ฐ์กฐํ๋ ๋ถ๋ค์ด ๊ฝค ์์ด์ ์ด์ฌํ ๊ณต๋ถํด๋ณด๋ ค ํ์ง๋ง
์ฒ์ ์ ํ์ ๋ ์ด๊ฒ ๋ชฐ๊น.. ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ..? ๋จ์ด ํ๋๋ถํฐ ์ด๋ ค์์.. ๊ณต๋ถ์ ์ธ๊ณ๋ ๋์ด ์๋ค(?)
๊ทธ๋์ ์ด์ง ์ ๊ปด ๋๊ณ ๋ค๋ฅธ ๊ฐ์ ๋ค์ ๋ฃ๋ค๊ฐ ์ค๋ ๋ค์ ๊ณต๋ถ๋ฅผ ํ๋๋ฐ ์ ๋ฒ ์ดํด๊ฐ ๋์ด์ ์ ๋ฆฌํด ๋ณด๋ คํ๋ค ๐
โ๏ธ DOM์ ๊ตฌ์กฐ๋ ๋๋ฌด์ฒ๋ผ ์๊น ใ ก DOM ํธ๋ฆฌ๋ผ๊ณ ๋ ํ๋ค
Live DOM Viewer
์๋ ์ฌ์ดํธ์ ๋ค์ด๊ฐ์ ์ด๊ฒ์ ๊ฒ ์ค์ตํด๋ณด๋ฉด ์ฌ๋ ๊ฐ์ด ์กํ..
https://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
โ๏ธ HTML์ ์ ์ ์ธ text ์ด๋ฏ๋ก JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์น ๋ฌธ์์ ์ผ๋ถ๋ฅผ ๋์ ์ผ๋ก ๋ง๋ ๋ค
(DOM์ ๋ชฉ์ ์ด๋ผ๊ณ ํ ์ ์๊ฒ ์ฌฌ)
โ๏ธ DOM ์์์ ์ ๊ทผํ๊ธฐ
1๏ธโฃ DOM ์์๋ฅผ id ์ ํ์๋ก ์ ๊ทผํ๋ ํจ์ ใ ก getElementById()
์ ๋ก์ด๋ ๊ฒ์๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ์ด ํจ์๋ฅผ ์ฒ์ ์ ํด๋ดค๋ ๋..! ์ด์ ์ฃ๊ธ ์ดํด๊ฐ๊ฐ๋ ํจ์์ด๋ค
h1 ์๋ id ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ id ์ ํ์๋ฅผ ์ฌ์ฉํ์ฌ DOM ์์์ ์ ๊ทผํ๋ ํจ์๊ฐ ๋ฐ๋ก
getElementById("heading")
**console ์ฐฝ์ ๋ฃ์ด๋ณด๋ฉด id ๊ฐ์ด heading์ธ ์์๋ฅผ ์ถ๋ ฅํ ๊ฒ์ด๋น
2๏ธโฃ DOM ์์๋ฅผ class๊ฐ์ผ๋ก ์ฐพ์๋ด๋ ํจ์ ใ ก getElementsByClassName()
By ์์ Elements๋ฅผ ๋ณด๋ฉด 's'๊ฐ ๋ถ์ด ์๋ค
class ์ ํ์๋ id ์ ํ์์ ๋ค๋ฅด๊ฒ ์น ๋ฌธ์ ์์์ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ ์ ์์! ๊ทธ๋์ 2๊ฐ ์ด์์ ์น ์์์ ์ ๊ทผํ ์ ์๋ค!
class ๊ฐ์ด "accent" ์ธ ๊ฒ ๋๊ฐ๊ฐ ์์ง์ ์ค๋์๊ณผ ํ ๋ผ๊ตฌ๋ฆ
getElementsByClassName("accent")
์ฝ์์ฐฝ์ ์ ๋ ฅํด ๋ณด๋ฉด ์ค๋์, ํ ๋ผ๊ตฌ๋ฆ ์์์ ๋ชจ๋ ์ ๊ทผํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค
1๊ฐ์ ์์์๋ง ์ ๊ทผํ๊ณ ์ถ๋ค๋ฉด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค
getElementsByClassName("accent")[0] ์ด๋ ๊ฒ !!
3๏ธโฃ DOM ์์๋ฅผ ํ๊ทธ ์ด๋ฆ์ผ๋ก ์ฐพ์๋ด๋ ํจ์ ใ ก getElementsByTagName()
id๋ class ์ ํ์๊ฐ ์์๋ ์ด ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ์ ๊ทผํ๊ธฐ (์ฌ๊ธฐ์๋ 's'๊ฐ ๋ถ์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์์๋ฅผ ๋ชจ๋ ์ฐพ์ ์ ๊ทผํ๋ค)
getElementsByTagName("h2") ์ด๋ ๊ฒ ์ ๊ทผํ๋ฉด h2์ ๋๊ฐ์ง ์์๊ฐ ๋์ค๊ฒ ๋๋ค
์ด๋๋ ํ ๊ฐ์ ์์์๋ง ์ ๊ทผํ๊ณ ์ถ๋ค๋ฉด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค
getElementsByTagName("h2")[1] => NewJeans์๋ง ์ ๊ทผ !!
4๏ธโฃ DOM ์์๋ฅผ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ฐพ์์ฃผ๋ ํจ์ ใ ก querySelector(), querySelectorAll()
์ด ํจ์๋ ๋ง์ด ๋ณด์ จ์ฃ ? (์๋์ฒ) ํํ..
id, class ๊ฐ์ ์ฌ์ฉํด๋ ๋๊ณ ํ๊ทธ ์ด๋ฆ์ ์ฌ์ฉํด๋ ๋๋ ํจ์์ด๋ค
์ ๋ ฅํ ๋ : class ๊ฐ ์์๋ ๋ง์นจํ(.), id๊ฐ ์์๋ ์ต(#)์ ๋ถ์ด๋ฉด ๋๋ค ํ๊ทธ๋ ๊ธฐํธ ์์ด ํ๊ทธ ์ด๋ฆ๋ง ์ฌ์ฉ
getElementById() ํจ์์ querySelector() ํจ์๋ฅผ ์ฌ์ฉํ ๋ ๋ค๋ฅธ ์ ์ ์๋์ ๊ฐ์์
getElementById("container")
querySelector("#container")
๋ค๋ฅธ์ ์ ์์๊ฒ ์ฐ์ค? (์๋์ฒ...) ๋ ๋ ..
'TIL > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] LocalStorage์ ๋ํ์ฌ (0) | 2022.12.26 |
---|---|
[TIL] ๋ฌธ์์ด ์๋ฅด๋ ํจ์ split() (1) | 2022.12.21 |
[TIL] addEventListener ( ) ํจ์ ใ ก ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํด ๋ด ์๋ค (0) | 2022.09.05 |
[TIL] JavaScript ๋ฐฐ์ด ์์ ์๋ ๊ฒ ๋ฌด์์๋ก ์ถ์ถ (0) | 2022.08.31 |
[TIL] JavaScript ๋ฐฐ์ด์ ํฉ๊ณ (for๋ฌธ ์ฌ์ฉ) (0) | 2022.08.31 |