-일반적으로 html과 css는 단순히 처음 한번 웹 페이지에 모습을 드러내고 나면 그 이후에는 특별히 어떤 변화를 주는 것이 어렵다는 한계가 있음
document.getElementById('id_이름')
: id 속성을 가지고 태그를 선택할 수 있음undefined
가 아닌 null
값이 리턴 됨document.getElementsByClassName('class_이름')
: class 속성을 가지고 여러 태그를 한번에 선택할 수 있음
HTMLCollection
유사배열이 출력 됨
length
프로퍼티, for...of
문을 사용할 수 있음요소들의 순서는 html 태그에서 봣을 때 깊이와는 상관 없이 무조건 위에서부터 차례대로 임
클래스가 하나 밖에 없는 요소를 선택하더라도 요소가 한 개 있는HTMLCollection
이 출력 됨
존재하지 않는 클래스 값을 찾게 되면 null
값이 아닌 빈 HTMLCollection
이 출력 됨
const myTags3 = document.getElementsByClassName('white'); // white는 없는 class임
console.log(myTags3); // HTMLCollection(0)
console.log(myTags3 === null); // false
console.log(myTags3.length); // 0
length
프로퍼티가 있어야 함 Array
객체의 isArray
메소드는 파라미터로 전달한 값이 배열인지 아닌지를 평가해서 그 결과를 불린 형태의 값으로 리턴해주는 메소드 임false
임document.getElementsByTagName('tag_이름')
: 태그 이름으로 태그를 선택할 수 있음HTMLCollection
을 리턴함*
값을 전달하게 되면 모든 태그를 선택할 수도 있음document.querySelector('css선택자')
: css 선택자로 html 태그를 유연하게 선택할 수 있음null
값을 리턴함const myTag = document.querySelector('#myNumber');
console.log(myTag);
document.querySelectorAll('css선택자')
: 여러개의 선택자를 선택할 때NodeList
라는 유사 배열이 선택됨const myTags1 = document.querySelectorAll('.color-btn');
console.log(myTags1);
getElement
방식과 querySelector
방식 중 메소드 이름이 짧고 하나의 메소드로 유연하게 태그 선택이 가능하다는 점에서 querySelector
사용을 추천함// 이벤트(Event)와 버튼 클릭
const btn = document.querySelector('#grade');
// 이벤트 핸들링(Event Handling)
btn.onclick = function() { // 이벤트 핸들러(Event Handler)
alert('정답입니다!👏');
};
<button id="myBtn" onclick="console.log('Hello Codeit!')">클릭!</button>