添加了一个CSS背景,如何完全删除它

时间:2012-04-05 09:30:01

标签: javascript jquery

我正在使用jquery .css属性添加背景

myobj.css('background', '#AE0000');

这会导致将此样式的html添加到标记

style="background: none repeat scroll 0% 0% rgb(174, 0, 0);"

稍后,我想删除此背景。我认为将css背景设置为白色myobj.css('background', '#FFFFFF');会起作用,但不幸的是,这会产生问题,因为div具有白色背景而不是任何东西。

style="background: none repeat scroll 0% 0% rgb(255, 255, 255);"

与jquery有类似的方法来完全删除CSS的background属性吗?比如style=""

5 个答案:

答案 0 :(得分:5)

简答

myobj.css('backgroundColor', 'transparent');

长答案

我建议更好的可维护性,使用css类来做这样的事情:

.active { background:#AE00000 }

然后在你的javascript中

myobj.addClass('active');

关闭

myobj.removeClass('active');

这样做的好处是,您不必担心每次更改设计时更改css值(如果使用css()),或者需要为该特定元素添加更多标记。

例如,最后你需要在你的js中使用背景,字体大小和颜色:

myobj.css({'background':'#aaa', 'font-size':'15px', 'color':'red'});

然后每当你需要关闭时:

myobj.css({'background':'none', 'font-size':defaultSize + 'px', 'color':'black'});

如果使用css:

,不仅容易出错,而且难以维护
.active { background:#AE00000; font-size:15px; color:red }

然后在你的javascript中

myobj.addClass('active');

关闭

myobj.removeClass('active');

答案 1 :(得分:3)

使用

myobj.css('backgroundColor', 'transparent');

<强> See it in action

答案 2 :(得分:3)

使用none

myobj.css('background', 'none');

答案 3 :(得分:1)

我想说,这将是一个好方法

myobj.css({
  'background': 'none', //remove all the background property
  'backgroundColor': '#FFF' //then only set the background color property
});

答案 4 :(得分:0)

css('background', 'none')是您最好的选择:fiddle