协慌网

登录 贡献 社区

如何删除添加了. 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 。您还可以对几个 CSS 属性使用inherit来从其父级继承该属性。在 CSS3 / CSS4 中,您也可以使用initialrevertunset但这些关键字可能具有有限的浏览器支持。

2. 删除 CSS 属性

空字符串删除 CSS 属性,即

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

但请注意,正如jQuery .css()文档中所指定的,这会删除该属性,但它与 IE8 的某些 CSS 速记属性(包括背景)存在兼容性问题。

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

3. 删除元素的整个样式

.removeAttr("style")