added a css background, how to entirely remove it
Question by sameold
I’m using the jquery .css property to add a background
myobj.css('background', '#AE0000');
This results in this style html being added to the markup
style="background: none repeat scroll 0% 0% rgb(174, 0, 0);"
Later on, I want to remove this background. I thought that setting css background to white myobj.css('background', '#FFFFFF'); would work, but unfortunately, this creates problems because the div has white background as opposed to nothing.
style="background: none repeat scroll 0% 0% rgb(255, 255, 255);"
Is there a similar way with jquery to entirely remove the background property of the CSS? like style=""
Answer by SiGanteng
Short Answer
myobj.css('backgroundColor', 'transparent');
Long Answer
I’d suggest for better maintainability, use css classes for things like this:
.active { background:#AE00000 }
then in your javascript
myobj.addClass('active');
to toggle off
myobj.removeClass('active');
This has the benefit of you not having to worry about changing the css value (if you use css()) everytime there’s change in your design or if you need to add more markup to that particular element.
For example, in the end you need to use background, font-size and color, in your js:
myobj.css({'background':'#aaa', 'font-size':'15px', 'color':'red'});
Then everytime you need to toggle off:
myobj.css({'background':'none', 'font-size':defaultSize + 'px', 'color':'black'});
Not only it’s error prone, but more difficult to maintain, if you use css:
.active { background:#AE00000; font-size:15px; color:red }
then in your javascript
myobj.addClass('active');
to toggle off
myobj.removeClass('active');
Answer by Starx
I would say, this will be a good way
myobj.css({
'background': 'none', //remove all the background property
'backgroundColor': '#FFF' //then only set the background color property
});