How can I remove all CSS classes using jQuery/JavaScript?

JavascriptJqueryDom

Javascript Problem Overview


Instead of individually calling $("#item").removeClass() for every single class an element might have, is there a single function which can be called which removes all CSS classes from the given element?

Both jQuery and raw JavaScript will work.

Javascript Solutions


Solution 1 - Javascript

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

Calling removeClass with no parameters will remove all of the item's classes.


You can also use (but it is not necessarily recommended. The correct way is the one above):

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

If you didn't have jQuery, then this would be pretty much your only option:

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

Solution 2 - Javascript

Hang on, doesn't removeClass() default to removing all classes if nothing specific is specified? So

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

will do it on its own...

Solution 3 - Javascript

Just set the className attribute of the real DOM element to '' (nothing).

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

Other people have said that just calling removeClass works - I tested this with the Google jQuery Playground: http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ... and it works. So you can also do it this way:

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

Solution 4 - Javascript

Of course.

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

Solution 5 - Javascript

Remove specific classes:

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

Say if element has class="class another-class".

Solution 6 - Javascript

The shortest method

$('#item').removeAttr('class').attr('class', '');

Solution 7 - Javascript

You can just try:

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

If you have to access that element without a class name, for example you have to add a new class name, you can do this:

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

I use that function in my project to remove and add classes in an HTML builder.

Solution 8 - Javascript

I like using native JavaScript to do this, believe it or not!

solution 1: className

  1. Remove all class of all items
const items = document.querySelectorAll('item');
for (let i = 0; i < items.length; i++) {
  items[i].className = '';
}
  1. Only remove all class of the first item
const item1 = document.querySelector('item');
item1.className = '';

solution 2: classList

// remove all class of all items
 const items = [...document.querySelectorAll('.item')];
 for (const item of items) {
   item.classList.value = '';
 }
 // remove all class of the first item
 const items = [...document.querySelectorAll('.item')];
 for (const [i, item] of items.entries()) {
   if(i === 0) {
     item.classList.value = '';
   }
 }
 // or
 const item = document.querySelector('.item');
 item.classList.value = '';

> jQuery ways (not recommended)

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

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

refs

https://developer.mozilla.org/en-US/docs/Web/API/Element/className

https://developer.mozilla.org/en-US/docs/Web/API/Element/classList

Solution 9 - Javascript

$('#elm').removeAttr('class');

Attribute "class" will no longer be present in "elm".

Solution 10 - Javascript

Since not all versions of jQuery are created equal, you may run into the same issue I did, which means calling $("#item").removeClass(); does not actually remove the class (probably a bug).

A more reliable method is to simply use raw JavaScript and remove the class attribute altogether.

document.getElementById("item").removeAttribute("class");

Solution 11 - Javascript

Let's use this example. Maybe you want the user of your website to know a field is valid or it needs attention by changing the background color of the field. If the user hits reset then your code should only reset the fields that have data and not bother to loop through every other field on your page.

> This jQuery filter will remove the class "highlightCriteria" only for > the input or select fields that have this class.

$form.find('input,select').filter(function () {
	if((!!this.value) && (!!this.name)) {
		$("#"+this.id).removeClass("highlightCriteria");
	}
});

Solution 12 - Javascript

Try with removeClass.

For instance:

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 a Div with class="clase1"</div>

Solution 13 - Javascript

I had a similar issue. In my case, on disabled elements was applied that aspNetDisabled class and all disabled controls had wrong colors. So, I used jQuery to remove this class on every element/control I want and everything works and looks great now.

This is my code for removing aspNetDisabled class:

$(document).ready(function () {

    $("span").removeClass("aspNetDisabled");
    $("select").removeClass("aspNetDisabled");
    $("input").removeClass("aspNetDisabled");

});

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAliView Question on Stackoverflow
Solution 1 - JavascriptjimyiView Answer on Stackoverflow
Solution 2 - Javascriptda5idView Answer on Stackoverflow
Solution 3 - JavascriptIsaac WallerView Answer on Stackoverflow
Solution 4 - JavascriptkangaxView Answer on Stackoverflow
Solution 5 - JavascriptShawn RebeloView Answer on Stackoverflow
Solution 6 - JavascriptYanniView Answer on Stackoverflow
Solution 7 - JavascriptAlessandro Foolish Ciak DAntonView Answer on Stackoverflow
Solution 8 - JavascriptxgqfrmsView Answer on Stackoverflow
Solution 9 - JavascriptuihelpView Answer on Stackoverflow
Solution 10 - JavascriptVincentView Answer on Stackoverflow
Solution 11 - JavascriptGregory BolognaView Answer on Stackoverflow
Solution 12 - Javascriptuser7396942View Answer on Stackoverflow
Solution 13 - JavascriptNezirView Answer on Stackoverflow