Удаление нескольких классов (jQuery)

615

Есть ли лучший способ переписать это:

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

Я не могу использовать, removeClass();поскольку это удалит ВСЕ классы, которые я не хочу.

eozzy
источник

Ответы:

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

From removeClass(), параметр класса:

Один или несколько классов CSS для удаления из элементов, они разделены пробелами.

Клетус
источник
19

.removeClass()Документация jQuery .

Один или несколько классов CSS для удаления из элементов, они разделены пробелами.

SeanJA
источник
17

В документации сказано:

class (Optional) String
Один или несколько классов CSS для удаления из элементов, они разделены пробелами.

Пример:

Удалите классы 'blue' и 'under' из соответствующих элементов.

$("p:odd").removeClass("blue under");
децезе
источник
12

Есть много способов сделать это!

JQuery

  1. удалить все класс
    $("element").removeClass();
    ИЛИ
    $("#item").removeAttr('class');
    ИЛИ
    $("#item").attr('class', '');
    ИЛИ
    $('#item')[0].className = '';

  2. удалить мультикласс
    $("element").removeClass("class1 ... classn");
    ИЛИ
    $("element").removeClass("class1").removeClass("...").removeClass("classn");

Ванильный Javascript

  1. удалить весь класс

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

  1. удалить мультикласс

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

xgqfrms
источник
2

Отдельные занятия по белому space

$('element').removeClass('class1 class2');
CodeMirror
источник
1

Вы должны отделить те классы, которые вы хотите удалить пробелом$('selector').removeClass('class1 class2');

Авишек Мондал
источник
0

Начиная с jQuery 3.3.0 , можно передавать массивы в .addClass(). removeClass()и toggleClass(), что облегчает, если есть какая-либо логика, которая определяет, какие классы должны быть добавлены или удалены, так как вам не нужно возиться со строками, разделенными пробелом.

$("div").removeClass(["class1", "class2"]); 
Марк Фишер
источник