jQuery / JavaScript를 사용하여 모든 CSS 클래스를 제거하는 방법은 무엇입니까?


778

$("#item").removeClass()요소가 가질 수있는 모든 단일 클래스 를 개별적으로 호출하는 대신 , 주어진 요소에서 모든 CSS 클래스를 제거하는 단일 함수가 호출 될 수 있습니까?

jQuery와 원시 JavaScript가 모두 작동합니다.

답변:


1509
$("#item").removeClass();

removeClass매개 변수없이 호출 하면 항목의 모든 클래스가 제거됩니다.


당신은 또한 사용할 수 있습니다 (그러나 반드시 권장되는 것은 아니며 올바른 방법은 위의 방법입니다).

$("#item").removeAttr('class');
$("#item").attr('class', '');
$('#item')[0].className = '';

jQuery가 없다면 이것이 유일한 옵션 일 것입니다.

document.getElementById('item').className = '';

7
지금 attr()버전 이 아니어야합니까 prop()?
Mike

7
매개 변수없이 removeClass ()를 호출하면 버전 1.11.1에서 더 이상 작동하지 않는 것 같습니다.
Vincent

1
그 문서는 명시 적으로 언급 이후 @Vincent jQuery를 도입 벌레처럼 보인다 : If a class name is included as a parameter, then only that class will be removed from the set of matched elements. If no class names are specified in the parameter, all classes will be removed. api.jquery.com/removeclass을
AtheistP3ace

예, 또한 버그가 아니라고 생각합니다. 그 동안 다음과 같은 순수한 JavaScript가 제대로 작동합니다. document.getElementById ( "item"). removeAttribute ( "class");
Vincent

1
jQuery UI 1.9에 문제가 있습니다. removeClass ()가 작동하지 않으면 removeAttr ( 'class')
Milad

119

잠깐 만요. removeClass () 기본적으로 아무것도 지정되지 않은 경우 모든 클래스를 제거하지 않습니까? 그래서

$("#item").removeClass();

스스로 할 것입니다 ...


3
예 : "일치하는 요소 세트에서 전체 또는 지정된 클래스를 제거합니다."
da5id

5
이제 올바르게 문서화 되었습니다. 매개 변수에 클래스 이름이 지정되지 않은 경우 모든 클래스가 제거됩니다.
사용자

17

className실제 DOM 요소 의 속성을 ''(nothing)으로 설정하십시오.

$('#item')[0].className = ''; // the real DOM element is at [0]

편집 : 다른 사람들이 바로 전화라고 한 removeClass작품 - 나는 구글 JQuery와 놀이터와이 테스트 : http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ... 그리고 그것은 작동합니다. 따라서 다음과 같이 할 수도 있습니다.

$("#item").removeClass();

13

물론이야.

$('#item')[0].className = '';
// or
document.getElementById('item').className = '';

11

Heh도 비슷한 답을 찾고있었습니다. 그리고 나에게 맞았다.

특정 클래스 제거

$('.class').removeClass('class');

요소에 class = "class another-class"가 있는지 말하십시오.


9

가장 짧은 방법

$('#item').removeAttr('class').attr('class', '');

5

당신은 시도 할 수 있습니다

$(document).ready(function() {
   $('body').find('#item').removeClass();
});

예를 들어 클래스 이름없이 해당 요소에 액세스해야하는 경우 새 클래스 이름을 추가해야합니다.

$(document).ready(function() {
   $('body').find('#item').removeClass().addClass('class-name');
});

나는 projet에서 해당 기능을 사용하여 HTML 빌더에서 클래스를 제거하고 추가합니다. 행운을 빕니다.


4
$('#elm').removeAttr('class');

더 이상 클래스 속성이 "elm"에 표시되지 않습니다.


이것이 나를 위해 일한 것입니다. removeClass();나를 위해 일하지 않았다.
kneidels

3

나는 네이티브 js를 사용하는 것을 좋아합니다.

1.

// remove all items all class  
const items = document.querySelectorAll('item');
for (let i = 0; i < items.length; i++) {
    items[i].className = '';
}

2.

// only remove all class of first item
const item1 = document.querySelector('item');
item1.className = '';

jQuery 방법

  1. $("#item").removeClass();

  2. $("#item").removeClass("class1 ... classn");


2

모든 버전의 jQuery가 동일하게 생성되는 것은 아니므로 $ ( "# item"). removeClass ();를 호출하는 것과 같은 문제가 발생할 수 있습니다. 실제로 클래스를 제거하지는 않습니다. (아마도 버그)

보다 안정적인 방법은 단순히 원시 JavaScript를 사용하고 클래스 속성을 모두 제거하는 것입니다.

document.getElementById("item").removeAttribute("class");

1

와 시도 removeClass

예를 들면 :

var nameClass=document.getElementsByClassName("clase1");
console.log("after", nameClass[0]);
$(".clase1").removeClass();
var nameClass=document.getElementsByClassName("clase1");
console.log("before", nameClass[0]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clase1">I am Div with class="clase1"</div>


1

이 예제를 사용합시다. 웹 사이트 사용자가 필드가 유효하거나 필드의 배경색을 변경하여주의가 필요하다는 것을 알기를 원할 수도 있습니다. 사용자가 재설정을 누르면 코드는 데이터가있는 필드 만 재설정하고 페이지의 다른 모든 필드를 반복하지 않아도됩니다.

이 jQuery 필터는이 클래스가있는 입력 또는 선택 필드에 대해서만 "highlightCriteria"클래스를 제거합니다.

$form.find('input,select').filter(function () {
    if((!!this.value) && (!!this.name)) {
        $("#"+this.id).removeClass("highlightCriteria");
    }
});

-2

비슷한 문제가있었습니다. 내 경우에는 비활성화 된 요소에 aspNetDisabled 클래스와 비활성화 된 모든 컨트롤의 색상이 잘못 적용되었습니다. 그래서 jquery를 사용하여 내가하지 않는 모든 요소 / 컨트롤 에서이 클래스를 제거했으며 모든 것이 작동하고 멋지게 보입니다.

이것은 aspNetDisabled 클래스를 제거하는 코드입니다.

$(document).ready(function () {

    $("span").removeClass("aspNetDisabled");
    $("select").removeClass("aspNetDisabled");
    $("input").removeClass("aspNetDisabled");

}); 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.