Как удалить все CSS-классы с помощью jQuery/JavaScript?
Вместо того чтобы вызывать $("#item").removeClass()
для каждого отдельного класса, который может быть у элемента, существует ли функция, которую можно вызвать для удаления всех CSS-классов у данного элемента?
Работают как jQuery, так и чистый JavaScript.
5 ответ(ов)
Вызов метода removeClass
без параметров удалит все классы элемента с указанным идентификатором.
Также вы можете использовать (хотя это и не рекомендуется, так как правильный способ — это первый вариант):
$("#item").removeAttr('class');
$("#item").attr('class', '');
$('#item')[0].className = '';
Если бы у вас не было jQuery, то это была бы практически единственная возможность:
document.getElementById('item').className = '';
Вы правы, метод removeClass()
в jQuery по умолчанию удаляет все классы элемента, если не указаны конкретные классы для удаления. Так что вызов:
$("#item").removeClass();
действительно удалит все классы у элемента с идентификатором item
. Если вы хотите удалить только определённые классы, вам необходимо передать их в качестве аргумента. Например:
$("#item").removeClass("class1 class2");
Это удалит только указанные классы class1
и class2
, оставив остальные классы без изменений.
Вы можете просто установить атрибут className
реального DOM-элемента на ''
(пустую строку):
$('#item')[0].className = ''; // реальный DOM-элемент находится по индексу [0]
Некоторые другие пользователи говорили, что вызов метода removeClass
также срабатывает – я протестировал это в Google jQuery Playground: http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ... и это работает. Так что вы также можете сделать это следующим образом:
$("#item").removeClass();
Да, конечно.
Вы можете очистить классы элемента с помощью следующего кода:
$('#item')[0].className = '';
// или
document.getElementById('item').className = '';
Оба этих метода устанавливают свойство className
в пустую строку, что effectively удаляет все классы у элемента с ID 'item'. Выберите тот, который вам удобнее использовать в вашем проекте.
Чтобы удалить конкретный класс у элемента, который имеет несколько классов, вы можете использовать метод removeClass()
в jQuery. В вашем примере, если элемент имеет классы class
и another-class
, и вы хотите удалить только класс class
, вы можете сделать это следующим образом:
$('.class').removeClass('class');
Этот код удалит класс class
у всех элементов, которые содержат его. В результате элемент с классами class another-class
станет просто another-class
.
Если вам нужно удалить класс только у определенного элемента, вы можете использовать селектор более специфичный, например, через идентификатор или другой уникальный селектор:
$('#specificElement').removeClass('class');
Таким образом, вам не придется беспокоиться о том, что вы удаляете класс у других элементов.
Получение выбранного текста из выпадающего списка (select) с помощью jQuery
Как проверить, скрыт ли элемент в jQuery?
Эквивалент document.createElement в jQuery?
Как выбрать элемент по имени с помощью jQuery?
Как установить/удалить куки с помощью jQuery?