AD JB Toolbox 01

jQuery / Reference / .removeClass()

.removeClass()는 선택한 요소에서 지정한 클래스 이름을 제거합니다. 인수 없이 호출하면 모든 클래스를 제거하므로, 특정 상태만 해제할 때는 이름을 명시하는 편이 안전합니다.

문법과 적용 범위

$(".item").removeClass("active");
$(".item").removeClass("marked active");
$(".item").removeClass();

여러 클래스는 공백으로 구분한 문자열이나 배열로 전달합니다. 지정하지 않은 클래스는 남고, 없는 클래스를 제거해도 오류가 나지 않습니다. 제거 후에는 남아 있는 클래스와 다른 CSS 규칙이 다시 화면의 스타일을 결정하므로, 반드시 브라우저의 기본 모양으로 돌아가는 것은 아닙니다. 반환값은 원래 jQuery 객체입니다.

jQuery 공식 문서의 .removeClass() 정의와 인수에서 다른 호출 형태도 확인할 수 있습니다.

전체 실행 예제

아래 코드를 UTF-8 형식의 example.html 파일로 저장한 뒤 브라우저로 여세요. 예제는 jQuery 4.0.0 일반 빌드를 외부 주소에서 불러오므로 인터넷 연결이 필요합니다. 문서가 준비된 뒤 실행하도록 $(function () { ... }) 안에 코드를 작성했습니다.

<!doctype html>
<html lang="ko">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery removeClass 예제</title>
  <style>
    body { margin: 24px; font-family: sans-serif; line-height: 1.6; }
    .marked { background: #fff0b3; border: 2px solid #835b00; }
    .active { color: #a00000; font-weight: bold; }
    button, input, select { font: inherit; }
    #output { white-space: pre-wrap; overflow-wrap: anywhere; }
  </style>
  <script src="https://code.jquery.com/jquery-4.0.0.min.js"></script>
</head>
<body>
<p id="a" class="item base marked active">강조 항목</p>
<p id="b" class="item base marked active">둘째 항목</p>
  <p id="output" aria-live="polite"></p>
  <script>
    $(function () {
      $("#a").removeClass("active");
      $("#b").removeClass("marked active");
      $("#output").text("a: " + $("#a").attr("class") + " / b: " + $("#b").attr("class"));
    });
  </script>
</body>
</html>

실행 결과 확인

a는 붉은 글자 강조만 해제되어 배경과 테두리가 남고, b는 두 강조 클래스가 모두 제거됩니다. 결과는 a: item base marked / b: item base입니다.

사용할 때 주의할 점

  • .removeClass()를 인수 없이 사용하면 배치나 이벤트 대상 식별에 쓰던 클래스까지 사라질 수 있습니다. 해제할 상태 이름만 전달하세요.
  • 인수는 CSS 선택자가 아니라 클래스 이름입니다. .removeClass(".active")처럼 점을 붙이지 않습니다.
  • 인라인 style 속성은 클래스 제거로 지워지지 않습니다. .css()로 설정했던 속성은 별도로 해제하거나 클래스로 관리하세요.

용도를 비교하려면 .addClass()로 클래스 추가하기, .toggleClass()의 조건 지정을 참고하세요.

같은 카테고리의 다른 글
jQuery / Reference / .prependTo()

jQuery / Reference / .prependTo()

삽입할 내용을 먼저 지정해 대상의 첫 번째 자식으로 넣는 방법과 반환 집합, 이동·복제 동작을 설명합니다.

jQuery / Reference / .wrapAll()

jQuery / Reference / .wrapAll()

여러 요소를 하나의 부모로 모으는 방법과 중간 형제의 처리, 위치 이동 및 감싸기 해제의 한계를 설명합니다.

jQuery / Reference / .slideUp()

jQuery / Reference / .slideUp()

내용을 접어 숨기는 문법과 시간·easing·완료 콜백을 설명하고, 연속 클릭과 처음 상태로 되돌리는 예제를 제공합니다.

jQuery / Reference / :button

jQuery / Reference / :button

input 버튼과 button 태그를 선택하는 :button의 범위를 예제로 확인하고, submit·reset 입력칸과의 차이를 설명합니다.

jQuery / Reference / .width()

jQuery / Reference / .width()

내용 너비와 padding·border를 포함한 너비를 비교하고, border-box에서 width를 읽고 설정하는 결과를 설명합니다.

jQuery / Reference / .addClass()

jQuery / Reference / .addClass()

기존 클래스를 유지하며 한 개 또는 여러 클래스를 추가하는 방법과 CSS가 적용되지 않을 때의 확인 사항을 설명합니다.

jQuery / Reference / .insertBefore()

jQuery / Reference / .insertBefore()

넣을 요소를 먼저 지정해 대상 앞에 형제로 삽입하는 문법과 before의 차이, 이동·복제 동작을 설명합니다.

jQuery / Reference / .after()

jQuery / Reference / .after()

대상의 뒤에 형제 요소를 추가하는 방법과 기존 요소 이동, append 및 insertAfter와의 차이를 설명합니다.

jQuery / Reference / .slideToggle()

jQuery / Reference / .slideToggle()

내용의 접기·펼치기를 전환하는 예제와 버튼 상태 연결, 효과 큐 및 전체 완료 처리 방법을 설명합니다.

jQuery / Reference / .wrap()

jQuery / Reference / .wrap()

각 요소에 별도의 부모 구조를 만드는 방법과 반환 대상, 반복 실행 및 wrapAll과의 차이를 설명합니다.