본문 바로가기
Frontend/JavaScript

JavaScript : DOM에서 class를 설정해보자

by 코딩쥐 2024. 7. 29.

classList

classList는 CSS의 클래스 목록에 접근하여 지정한 클래스를 추가, 제거 등의 기능을 할 수 있다. 인라인형식의 스타일의 경우 다른 디자인을 설정하기 어렵지만, 클래스를 통해 지정하는 경우에는 이벤트에 따라 클래스를 추가, 제거 하는 등의 기능을 통해 조율이 쉽다. 

메서드 설명
.length  해당 요소의 클래스의 수를 반환한다.
.add() 해당 요소의 클래스 이름을 추가한다. 
.contains() 해당 요소에 지정된 클래스 이름이 있는지 여부를 확인한다. (true / false)
.item(index) 해당 요소에서 지정된 인덱스 번호로 클래스 이름을 반환한다. (0부터 시작)
.remove() 해당 요소에서 하나 이상의 클래스 이름을 제거한다. 
.toggle(클래스명, true|false) 해당 요소의 클래스 추가/삭제를 전환한다. 두번째 파라미터는 클래스 존재여부에 관계없이 클래스를 추가 / 제거하도록 하는 강제하는 값이다. 

 

아래 예제는 #div1에 설정되어있는 .bc3를 제거하고, .bc1을 추가하고 그리고 .bc2을 추가 / 제거를 전환하는 toggle 메서드를 넣었다.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        #div1 {
            width: 200px;
            height: 200px;
            padding: 50px;
        }

        .bc1 {
            background-color: lightcoral;
        }

        .bc2 {
            background-color: lightblue;
        }

        .bc3 {
            color: yellow;
        }
    </style>
</head>

<body>
    <div id="div1" class="bc3">안녕하세요</div>
    <script>
        let div = document.querySelector("#div1");
        div.classList.remove("bc3");
        div.classList.add("bc1");
        console.log(div.classList.length);
        console.log(div.classList.contains("bc1"));
        console.log(div.classList.item(0));
        div.addEventListener("click", function () {
            div.classList.toggle("bc2");

        });
    </script>
</body>

</html>