DOM 관련 replit 문제를 풀다가 클래스를 추가하는 메소드로 className을 알게되었다. classList로만 가능한줄 알았는데 역시나 배워야 할 것들이 너무나 많다... 지금은 이해했어도 시간이 지나면 헷갈릴 수 있어서 기록으로 남기기로 하였다.
element.clssName = '추가 또는 변경하고 싶은 class 이름'
class 명으로 'Hello'를 추가하였다.
class 명을 'World'로 추가하니 기존 class 이름이 변경되었다.
즉, element.className에 무엇가를 대입하면 클래스 문자열 전체가 바뀌게 된다. 그런데 속성값 전체를 바꾸는게 아니고 클래스 하나만 추가하거나 제거하고 싶은 경우엔 className을 사용할 수 없다. 이럴 때 element.classList 라는 프로퍼티를 사용한다.
- element.classList.add('추가 할 class 이름')
- element.classList.remove('제거 할 class 이름')
- element.classList.toggle('class가 존재할 경우 class를 제거하고, 그렇지 않은 경우엔 추가')
하나의 클래스 이름만 추가할 수 있는 className 메소드 보다는 자유롭게 클래스 이름을 추가/삭제할 수 있는 classList 메소드를 사용하는 것이 더 유용할 것 같다는 생각이 든다.