Как удалить все 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 или метод DOM, такой как getElementById, не находит элемент?