DOM(Document Object Model)은 HTML 요소를 Object(JavaScript Object)처럼 조작(Manipulation)할 수 있는 Model.(문서 객체 모델)
document.queryselector('#xyz').setAttribute('title','This is title');//id가 xyz인 요소의 title 속성을 지정.
document.querySelector('#container').innerHTML = '';
const container = document.querySelector('#container');
while (container.firstChild) {
container.removeChild(container.firstChild);
}
//.firstChild 라는 매서드는 트리에서 노드의 첫번째 자식이나, 첫번째 자식이 없으면 null을 반환.(.lastChild도 있다)
const tweets = document.querySelectorAll('.tweet')
tweets.forEach(function(tweet){
tweet.remove();
})//클래스 이름이 'tweet'인 요소만 찾아서 제거함.
display : none vs. visibility : hidden
: 전자는 브라우저에서 아예 영역조차 사라짐. 후자는 영역은 남아 있음.
관심사 분리 : js를 이용해서도 스타일을 직접 조작할 수 있지만, CSS 클래스를 이용해 간접적으로 바꾸는 이유.
btn.addEventListener("click", fucntion(){
console.log('버튼이 눌렸다네!');
});//addEventListener 사용
btn.onclick = function(){
console.log('버튼이 눌렸다네!');
}//onclick 속성 이용
function handler(){
console.log('버튼이 눌렸다네!');
}
btn.onclick = handler; // onclick 속성에 이벤트 핸들러 등록.
~~btn.onclick = handler(); // 이벤트 실행을 등록하는 것이 아님!!~~