8

Как удалить все CSS-классы с помощью jQuery/JavaScript?

9

Вместо того чтобы вызывать $("#item").removeClass() для каждого отдельного класса, который может быть у элемента, существует ли функция, которую можно вызвать для удаления всех CSS-классов у данного элемента?

Работают как jQuery, так и чистый JavaScript.

5 ответ(ов)

17

Вызов метода removeClass без параметров удалит все классы элемента с указанным идентификатором.


Также вы можете использовать (хотя это и не рекомендуется, так как правильный способ — это первый вариант):

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

Если бы у вас не было jQuery, то это была бы практически единственная возможность:

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

Вы правы, метод removeClass() в jQuery по умолчанию удаляет все классы элемента, если не указаны конкретные классы для удаления. Так что вызов:

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

действительно удалит все классы у элемента с идентификатором item. Если вы хотите удалить только определённые классы, вам необходимо передать их в качестве аргумента. Например:

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

Это удалит только указанные классы class1 и class2, оставив остальные классы без изменений.

0

Вы можете просто установить атрибут className реального DOM-элемента на '' (пустую строку):

$('#item')[0].className = ''; // реальный DOM-элемент находится по индексу [0]

Некоторые другие пользователи говорили, что вызов метода removeClass также срабатывает – я протестировал это в Google jQuery Playground: http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ... и это работает. Так что вы также можете сделать это следующим образом:

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

Да, конечно.

Вы можете очистить классы элемента с помощью следующего кода:

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

Оба этих метода устанавливают свойство className в пустую строку, что effectively удаляет все классы у элемента с ID 'item'. Выберите тот, который вам удобнее использовать в вашем проекте.

0

Чтобы удалить конкретный класс у элемента, который имеет несколько классов, вы можете использовать метод removeClass() в jQuery. В вашем примере, если элемент имеет классы class и another-class, и вы хотите удалить только класс class, вы можете сделать это следующим образом:

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

Этот код удалит класс class у всех элементов, которые содержат его. В результате элемент с классами class another-class станет просто another-class.

Если вам нужно удалить класс только у определенного элемента, вы можете использовать селектор более специфичный, например, через идентификатор или другой уникальный селектор:

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

Таким образом, вам не придется беспокоиться о том, что вы удаляете класс у других элементов.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь