我正在用 jQuery 更改 CSS,我希望根据输入值删除我添加的样式:
if(color != '000000') $("body").css("background-color", color); else // remove style ?
我怎样才能做到这一点?请注意,只要使用颜色选择器选择颜色(即鼠标在色轮上移动时),就会运行上面的一行。
第二个注意事项:我无法用css("background-color", "none")
执行此操作,因为它将从 css 文件中删除默认样式。我只想删除 jQuery 添加的background-color
内联样式。
将属性更改为空字符串似乎可以完成此任务。
$.css("background-color", "");
有几种方法可以使用 jQuery 删除 CSS 属性:
1. 将 CSS 属性设置为其默认(初始)值
.css("background-color", "transparent")
查看MDN 上 CSS 属性的初始值 。这里的默认值是transparent
。您还可以对几个 CSS 属性使用inherit
来从其父级继承该属性。在 CSS3 / CSS4 中,您也可以使用initial
, revert
或unset
但这些关键字可能具有有限的浏览器支持。
2. 删除 CSS 属性
空字符串删除 CSS 属性,即
.css("background-color","")
但请注意,正如jQuery .css()文档中所指定的,这会删除该属性,但它与 IE8 的某些 CSS 速记属性(包括背景)存在兼容性问题。
将 style 属性的值设置为空字符串 - 例如 $('#mydiv')。css('color','') - 如果已经直接应用了元素,则从元素中删除该属性,无论是 HTML 样式属性,通过 jQuery 的. css()方法,或通过样式属性的直接 DOM 操作。但是,它不会删除样式表或元素中使用 CSS 规则应用的样式。警告: 一个值得注意的例外是,对于 IE 8 及更低版本,删除边框或背景等速记属性将完全从元素中删除该样式,无论样式表或元素中设置了什么 。
3. 删除元素的整个样式
.removeAttr("style")