Как удалить все CSS-классы, используя jQuery / JavaScript? - PullRequest
733 голосов
/ 15 сентября 2009

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

Будет работать как jQuery, так и сырой JavaScript.

Ответы [ 13 ]

1427 голосов
/ 15 сентября 2009
$("#item").removeClass();

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


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

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

Если у вас не было jQuery, то это был бы ваш единственный вариант:

document.getElementById('item').className = '';
112 голосов
/ 15 сентября 2009

Подожди, разве по умолчанию removeClass () не удаляет все классы, если ничего не указано? Так

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

сделает это самостоятельно ...

13 голосов
/ 15 сентября 2009

Просто установите атрибут className реального элемента DOM на '' (ничего).

$('#item')[0].className = ''; // the real DOM element is at [0]

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

$("#item").removeClass();
13 голосов
/ 15 сентября 2009

Конечно.

$('#item')[0].className = '';
// or
document.getElementById('item').className = '';
9 голосов
/ 08 июня 2014

Хех, пришел искать похожий ответ. Тогда это поразило меня.

Удалить определенные классы

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

Скажите, есть ли у элемента class = "class another-class"

9 голосов
/ 21 января 2013

Самый короткий метод

$('#item').removeAttr('class').attr('class', '');
4 голосов
/ 01 июня 2016

Вы можете просто попробовать

$(document).ready(function() {
   $('body').find('#item').removeClass();
});

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

$(document).ready(function() {
   $('body').find('#item').removeClass().addClass('class-name');
});

Я использую эту функцию в моем проекте, чтобы удалить и добавить класс в HTML-сборщик. Удачи.

4 голосов
/ 08 января 2014
$('#elm').removeAttr('class');

больше не будет указывать атрибут класса в "elm".

2 голосов
/ 13 июня 2017

Мне нравится использовать нативные js, верьте или нет!

1

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

2

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

jQuery путей

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

  2. $("#item").removeClass("class1 ... classn");

1 голос
/ 18 января 2017

попробуй с removeClass

Например :

var nameClass=document.getElementsByClassName("clase1");
console.log("after", nameClass[0]);
$(".clase1").removeClass();
var nameClass=document.getElementsByClassName("clase1");
console.log("before", nameClass[0]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clase1">I am Div with class="clase1"</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...