getElementsByClassName
getElementsByTagName
해당 태그 전부를 가져와서 리스트에 담는다.
예를들어, div 태그를 가져오는 경우, 모든 div태그를 가져와서 아래와 같이 리스트에 담기는 것을 확인할 수 있다.
querySelector
조건문으로 요소의 css를 변경하는 경우
menu.style.height
를 조건으로 활용하면 해당 style유무를 활용하는 거기 때문에element.style... === 0
과 같이 직접적으로 확인하는 상황이 만들어지지 않는다.element.style...
과 같이 boolean값으로 조건을 주고null
값을 활용하자.조건문을 활용하여 요소의 CSS 속성을 변경하는 경우
조건을 어떻게 줄 것인가?
element.style.height === 0px;
이 아닌 element.style.height
와 같이 조건을 준 이유element.style.height === 0px;
의 경우에는 DOM상에서 height라는 style이 생성 되어야만 조건을 확인하기 때문에 의도치 않은 상황이 발생할 수 있다처음에는 element.style.height = 0px;
과 같이 직접 값을 주었다.
if (menu.style.height) {
menu.style.height = 0px;
} else {
menu.style.height = '150px';
}
이와 같은 방법으로는 CSS가 처음 한번만 0px, 150px로 변경되고 이후에는 변경되지않았다. => 조건문의 menu.style.height
에 걸리지 않았다는 것.
따라서 0px이 아닌 null
값으로 처리를 해주어야만 조건문이 작동한다는 것을 알았다.
if (menu.style.height) {
menu.style.height = null;
} else {
menu.style.height = '150px';
}
null
값으로 처리하지 않은 경우
null
값으로 처리한 경우