DOM์ด๋ ์นํ์ด์ง์ HTML์ ๊ณ์ธตํ์์ผ ํธ๋ฆฌ๊ตฌ์กฐ๋ก ๋ง๋ ๊ฐ์ฒด๋ชจ๋ธ์ด๋ฉฐ, DOM์ HTML์ธ ์นํ์ด์ง์ ์คํฌ๋ฆฝํ ์ธ์ด(JavaScript)๋ฅผ ์๋ก ์๋๋ค. JavaScript๋ ์ด ๋ชจ๋ธ๋ก ์น ํ์ด์ง์ ์ ๊ทผํ๊ณ ํ์ด์ง๋ฅผ ์์ ํ ์ ์๋ค. document ๊ฐ์ฒด๋ก ์์๋ ์์์ ์์ฑ์๋ ์ ๊ทผํ ์ ์๋ค. ํน์ element์ ์ ๊ทผํ๊ณ ์ถ์ ๋ tag, class, id์ ๊ฐ์ css selector๋ก ์ ๊ทผํ๋ฉด ๋๋ค.
//`innerHTML`์ ์ฌ์ฉํ๋ฉด ํ๊ทธ ๋ด ๋ด์ฉ์ด ์ ๋ถ ๊ต์ฒด๋๋ค
document.body.innerHTML = '๋ด์ฉ ๋ค ๋ฐ๊ฟ';
//class๋ช
์ผ๋ก ์ ๊ทผํ๊ธฐ 1
let blueElement = document.querySelector('.blue');
// 2 : class๋ ์ฌ๋ฌ๋ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ช ๋ฒ์งธ์ ์์๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒ์ธ์ง๋ ์ง์ ํ๋ค. ์ง์ ์ ํ์ง ์์ผ๋ฉด ๋ฐฐ์ด๋ก ๋ฐํ๋๋ค.
let blueElement = document.getElementsByClassName('blue')[0];
//์์์ ์์ฑ์ ์์ ํ๊ธฐ
blueElement.style.backgroundColor = 'blue';
//javascript์์ ์์ ํ ๋ ํ์ดํ์ ์ฌ์ฉํ ์ ์๋ค. camelClass๋ก ๋ฐ๊ฟ ํํํ๋ค.
//์์๋ฅผ ์์ฑํ ์๋ ์๋ค. (p ์์ ์์ฑ)
let p = document.createElement('p');
//class๋ฅผ ์ง์ ํ๋ค.
p.className = "paragraph";
//์์น๋ฅผ ์ ํด์ค๋ค. appendChildํจ์๋ ์์์ ๋ค์ชฝ์ ๋ถ์ด๋ ์ญํ ์ ํ๋ค.
//๋จผ์ ์ด๋ค ํ๊ทธ ๋ค์ ์๋ก์ด ์์๋ฅผ ๋ถ์ผ์ง ์๊ฐํ ๋ค ์์ผ๋ก ๊ฐ ์์๋ฅผ ๋ถ๋ฌ์จ๋ค.
let h1 = document.querySelector('h1');
//h1๋ค์ p๋ฅผ ๋ถ์ธ๋ค
h1.appendChild(p);
๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ์๋์ ์ ๋ฆฌํด๋์๋ค.
https://velog.io/@dabin0219/TIL-13-event-%EC%A2%85%EB%A5%98%EC%99%80-eventListener
event ํจ์๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ผ๋ฉด, DOM์ ์ฌ์ฉํ๋ค.
const thisIsButton = document.getElementsByClassName('login-btn')[0];
thisIsButton.addEventListener('click', function() {
alert('๋ก๊ทธ์ธ!')
});
ํค๋ณด๋ ์ด๋ฒคํธ
[๋ฌธ์ ]
input#re-password
์ keyup
์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์.input#password
์ input#re-password
์ value
์์ฑ์ ํตํด input์ ์์ฑ๋ ๊ฐ์ ๊ฐ์ ธ์ค๊ณ ,<p>
ํ๊ทธ์ .alert
ํด๋์ค์ "๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค"
๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ๋ฃ์ด์ฃผ์ธ์.""
๋น ๋ฌธ๊ตฌ๋ฅผ ๋ฃ์ด์ฃผ์๋ฉด ๋ฉ๋๋ค.[ํ์ด]
const thisIsRpw = document.getElementById('re-password');
thisIsRpw.addEventListener('keyup', function() {
const password = document.getElementById('password').value;
const rePassword = document.getElementById('re-password').value;
if(password === rePassword) {
document.querySelector('.alert').innerHTML = " ";
} else {
document.querySelector('.alert').innerHTML = "๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋ ๋ค";
}
});
[๊ณผ์ ]
//dom์์ ๋ถ๋ฌ์ค๊ธฐ
const thisIsParagraph = document.getElementsByClassName('big-paragraph')[0];
//p๋ฅผ ํ๋์์ผ๋ก ์์
thisIsParagraph.style.color = "blue";
//pํด๋ฆญ์ alert
thisIsparagraph.addEventListener('click', function() {
alert("๋ด์ฉ์ ํด๋ฆญํ๊ตฐ์!")
});