如何删除使用.css()函数添加的样式?

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

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

我怎样才能做到这一点? 请注意,只要使用颜色选择器选择颜色(即,当鼠标移动到色轮上时),上面的行就会运行。

第二个注意:我不能用css("background-color", "none")做到这一点,因为它会从css文件中删除默认样式。 我只想删除jQuery添加的background-color内联样式。


将属性更改为空字符串似乎可以完成这项工作。

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


接受的答案有效,但在我的测试中在DOM上留下了空的style属性。 没什么大不了的,但是这一切都消除了:

removeAttr( 'style' );

这假定您想要移除所有动态样式并返回到样式表样式。


有几种使用jQuery去除CSS属性的方法:

1.将CSS属性设置为其默认(初始)值

.css("background-color", "transparent")

查看MDN的CSS属性的初始值。 这里默认值是transparent 。 您还可以使用inherit几个CSS属性inherite从其父属性。 在CSS3 / CSS4中,您也可以使用initialrevertunset但这些关键字可能只有有限的浏览器支持。

2.删除CSS属性

一个空字符串删除CSS属性,即

.css("background-color","")

但要注意,正如jQuery .css()文档中所指定的那样,这将删除该属性,但它与IE8对于某些CSS速记属性(包括背景)具有兼容性问题。

将样式属性的值设置为空字符串 - 例如$('#mydiv')。css('color','') - 如果该属性已经直接应用,则将该属性从该元素中移除,无论是HTML样式属性,通过jQuery的.css()方法,或通过直接DOM操作style属性。 但是,它不会删除样式表或元素中已应用CSS规则的样式。 警告: 一个值得注意的例外是,对于IE 8及以下版本,删除诸如边框或背景之类的简写属性将完全从元素中删除该样式,而不管样式表或元素中设置了什么

3.删除元素的整体风格

.removeAttr("style")
链接地址: http://www.djcxy.com/p/2775.html

上一篇: How can I remove a style added with .css() function?

下一篇: One var per function in JavaScript?