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

sam*_*old 1 javascript jquery

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

myobj.css('background', '#AE0000');
Run Code Online (Sandbox Code Playgroud)

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

style="background: none repeat scroll 0% 0% rgb(174, 0, 0);"
Run Code Online (Sandbox Code Playgroud)

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

style="background: none repeat scroll 0% 0% rgb(255, 255, 255);"
Run Code Online (Sandbox Code Playgroud)

是否有类似的方式与jquery完全删除backgroundCSS 的属性?喜欢style=""

And*_*ong 5

简答

myobj.css('backgroundColor', 'transparent');
Run Code Online (Sandbox Code Playgroud)

答案很长

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

.active { background:#AE00000 }
Run Code Online (Sandbox Code Playgroud)

然后在你的JavaScript中

myobj.addClass('active');
Run Code Online (Sandbox Code Playgroud)

切断

myobj.removeClass('active');
Run Code Online (Sandbox Code Playgroud)

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

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

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

然后每当你需要关闭时:

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

如果你使用css,它不仅容易出错,而且更难维护:

.active { background:#AE00000; font-size:15px; color:red }
Run Code Online (Sandbox Code Playgroud)

然后在你的JavaScript中

myobj.addClass('active');
Run Code Online (Sandbox Code Playgroud)

切断

myobj.removeClass('active');
Run Code Online (Sandbox Code Playgroud)