๐ป 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() : ๊ธฐ๋ณธ์ด๋ฒคํธ๋ฅผ ์ทจ์ํ ๋ ์ฌ์ฉํ๋ค.