Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
188
rated 0 times [  190] [ 2]  / answers: 1 / hits: 81095  / 13 Years ago, sat, march 19, 2011, 12:00:00

Well, I know that with some jQuery actions, we can add a lot of classes to a particular div:



<div class=cleanstate></div>


Let's say that with some clicks and other things, the div gets a lot of classes



<div class=cleanstate bgred paddingleft allcaptions ...></div>


So, how I can remove all the classes except one? The only idea I have come up is with this:



$('#container div.cleanstate').removeClass().addClass('cleanstate');


While removeClass() kills all the classes, the div get screwed up, but adding just after that addClass('cleanstate') it goes back to normal. The other solution is to put an ID attribute with the base CSS properties so they don't get deleted, what also improves performance, but i just want to know another solution to get rid of all except .cleanstate



I'm asking this because, in the real script, the div suffers various changes of classes.


More From » jquery

 Answers
87

Instead of doing it in 2 steps, you could just reset the entire value at once with attr by overwriting all of the class values with the class you want:



jQuery('#container div.cleanstate').attr('class', 'cleanstate');


Sample: http://jsfiddle.net/jtmKK/1/


[#93186] Friday, March 18, 2011, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
eanskylerg

Total Points: 524
Total Questions: 107
Total Answers: 100

Location: Colombia
Member since Mon, May 2, 2022
2 Years ago
;