我正在用jQuery改变CSS,我希望删除我根据输入值添加的样式:

if(color != '000000') $("body").css("background-color", color); else // remove style ?

我该怎么做呢? 请注意,每当使用颜色选择器选择颜色时,上面的行就会运行。当鼠标移动到一个色轮上时)。

第二注意:我不能这样做与css("background-color", "none"),因为它将删除默认样式从css文件。 我只是想删除jQuery添加的背景色内联样式。


当前回答

2018

有本地API

element.style.removeProperty(propery)

其他回答

为什么不让你想要删除一个CSS类的样式呢?现在你可以使用:. removeclass()。 这也开启了使用.toggleClass()的可能性:

(如果存在,则删除该类,如果不存在则添加该类。)

在处理布局问题时,添加/删除类也会减少更改/故障排除的混乱(而不是试图找出特定样式消失的原因)。

在我的测试中,接受的答案可以工作,但在DOM上留下一个空的样式属性。没什么大不了的,但这就完全消除了:

removeAttr( 'style' );

这假设您希望删除所有动态样式并返回到样式表样式。

我讲了用纯JavaScript删除样式属性的方法让你们知道纯JavaScript的方法

var bodyStyle = document.body.style;
if (bodyStyle.removeAttribute)
    bodyStyle.removeAttribute('background-color');
else        
    bodyStyle.removeProperty('background-color');

试试这个:

$('#divID').css({"background":"none"});// remove existing

$('#divID').css({"background":"#bada55"});// add new color here.

谢谢

如果你使用CSS样式,你可以使用:

$("#element").css("background-color","none"); 

然后替换为:

$("#element").css("background-color", color);

如果你不使用CSS样式,你在HTML元素中有属性,你可以使用:

$("#element").attr("style.background-color",color);