Usuwanie wielu klas (jQuery)


615

Czy istnieje lepszy sposób na przepisanie tego:

$('element').removeClass('class1').removeClass('class2');

Nie mogę użyć, removeClass();ponieważ usunie WSZYSTKIE klasy, których nie chcę.

Odpowiedzi:


1128
$("element").removeClass("class1 class2");

Od removeClass(), parametr klasy:

Jedna lub więcej klas CSS do usunięcia z elementów, są one oddzielone spacjami.




17

Dokumentacja mówi:

class (Optional) String
Jedna lub więcej klas CSS do usunięcia z elementów, są one oddzielone spacjami.

Przykład:

Usuń klasy „niebieski” i „pod” z dopasowanych elementów.

$("p:odd").removeClass("blue under");

12

Można to zrobić na wiele sposobów!

jQuery

  1. usuń wszystkie klasy
    $("element").removeClass();
    LUB
    $("#item").removeAttr('class');
    LUB
    $("#item").attr('class', '');
    LUB
    $('#item')[0].className = '';

  2. usuń wiele klas
    $("element").removeClass("class1 ... classn");
    LUB
    $("element").removeClass("class1").removeClass("...").removeClass("classn");

Waniliowy Javascript

  1. usuń wszystkie klasy

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

  1. usuń wiele klas

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



1

Musisz oddzielić te klasy, które chcesz usunąć spacją$('selector').removeClass('class1 class2');


0

Ponieważ jQuery 3.3.0 , możliwe jest, aby przejść do tablic .addClass(),. removeClass()i toggleClass(), co ułatwia, jeśli istnieje jakakolwiek logika, która określa, które klasy powinny zostać dodane lub usunięte, ponieważ nie trzeba bawić się ciągami znaków rozdzielanymi spacjami.

$("div").removeClass(["class1", "class2"]); 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.