JQuery / JavaScript kullanarak tüm CSS sınıflarını nasıl kaldırabilirim?


778

$("#item").removeClass()Bir öğenin sahip olabileceği her bir sınıfı tek tek çağırmak yerine, çağrılan tek bir işlev var mıdır ve bu da tüm CSS sınıflarını verilen öğeden kaldırır mı?

Hem jQuery hem de ham JavaScript çalışacaktır.

Yanıtlar:


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

removeClassParametresiz çağrıldığında , öğenin tüm sınıfları kaldırılır.


Ayrıca kullanabilirsiniz (ancak mutlaka tavsiye edilmez, doğru yolu bir üzerindedir):

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

JQuery'niz yoksa, bu hemen hemen tek seçeneğiniz olurdu:

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

7
attr()Sürüm prop()şimdi olmamalı mı ?
Mike

7
Parametresiz removeClass () çağrısı artık 1.11.1 sürümünde çalışmıyor gibi görünüyor
Vincent

1
@Vincent Belgeleri açıkça belirttiği için 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. jQuery'de
AtheistP3ace

Evet, aynı zamanda tasarımdan değil, bir hata olduğundan şüpheleniyorum. Bu arada, aşağıdaki saf JavaScript iyi çalışıyor. document.getElementById ( "item") removeAttribute ( "class.");
Vincent

1
JQuery UI 1.9 ile ilgili bir sorun var. RemoveClass () işe yaramadıysa removeAttr ('class') kullanın
Milad

119

Bekle, belirli bir şey belirtilmezse removeClass () varsayılanını tüm sınıfları kaldırmıyor mu? Yani

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

kendi başına yapacak ...


3
yeah: "Eşleşen öğeler kümesinden belirtilen sınıfların tümünü veya tümünü kaldırır."
da5id

5
Şimdi doğru şekilde belgelenmiştir : Parametrede hiçbir sınıf adı belirtilmezse, tüm sınıflar kaldırılır.
kullanıcı


13

Elbette.

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

11

Heh, benzer bir cevap aramaya geldi. Sonra bana vurdu.

Belirli Sınıfları Kaldır

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

Elemanın class = "class another-class" olup olmadığını varsayalım


9

En kısa yöntem

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

5

Sadece deneyebilirsin

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

Bu öğeye sınıf adı olmadan erişmeniz gerekiyorsa, örneğin yeni bir sınıf adı eklemeniz gerekiyorsa, bunu yapabilirsiniz:

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

Bir html oluşturucu sınıf kaldırmak ve eklemek için benim projet bu işlevi kullanın. İyi şanslar.


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

artık "elm" sınıfında mevcut olmayacak.


Bu benim için işe yaradı. removeClass();benim için çalışmadı.
29'da diz çöktü

3

Ben yerli js kullanmayı seviyorum, ister inan ister inanma!

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 yolları

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

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


2

Tüm jQuery sürümleri eşit oluşturulduğundan, $ ("# item") çağrılması anlamına gelen yaptığım aynı sorunla karşılaşabilirsiniz. RemoveClass (); aslında sınıfı kaldırmaz. (Muhtemelen bir hata)

Daha güvenilir bir yöntem, ham JavaScript'i kullanmak ve sınıf niteliğini tamamen kaldırmaktır.

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

1

ile dene removeClass

Örneğin :

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

Bu örneği kullanalım. Web sitenizin kullanıcısının bir alanın geçerli olduğunu bilmesini veya alanın arka plan rengini değiştirerek ilgilenmesi gerekebilir. Kullanıcı sıfırlama işlemini gerçekleştirirse, kodunuzun yalnızca veri içeren alanları sıfırlaması ve sayfanızdaki diğer tüm alanlarda geçiş yapmak için uğraşmaması gerekir.

Bu jQuery filtresi, yalnızca bu sınıfa sahip girdi veya seçme alanları için "vurgulaKriteri" sınıfını kaldıracaktır.

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

-2

Benzer bir sorun yaşadım. Benim durumumda aspNetDisabled sınıfı ve tüm devre dışı bırakılmış denetimlerin renkleri yanlış olan devre dışı öğeler uygulandı. Yani, ben alışkanlık her öğe / kontrol bu sınıf kaldırmak için jquery kullandım ve her şey çalışıyor ve şimdi harika görünüyor.

Bu benim aspNetDisabled sınıfını kaldırmak için benim kod:

$(document).ready(function () {

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

}); 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.