如果我使用以下方法在特定元素上设置CSS值:
$('#element').css('background-color', '#ccc');
我希望能够取消设置特定于元素的值并使用级联值,如下所示:
$('#element').css('background-color', null);
但是这种语法似乎不起作用 - 这是否可以使用另一种语法?
编辑:该值不是从父元素继承的 - 原始值来自元素级选择器。抱歉有任何困惑!
答案 0 :(得分:117)
来自jQuery docs:
将样式属性的值设置为空字符串 - 例如
$('#mydiv').css('color', '')
- 如果元素已经直接应用,则从元素中删除该属性,无论是在HTML样式属性中,还是通过jQuery的.css()
方法,还是通过对style
属性的直接DOM操作。但是,它不会删除样式表或<style>
元素中使用CSS规则应用的样式。
答案 1 :(得分:14)
我认为你也可以这样做:
$('#element').css('background-color', '');
这就是我很久以前用普通旧javascript中的display
属性来显示/隐藏字段的原因。
答案 2 :(得分:4)
实际上,我认为不正确的语法(使用null
)似乎正在工作 - 我的选择器只是不正确地形成,因此没有产生任何元素。 D'哦!
答案 3 :(得分:3)
试试这个:
$('#element').css('background-color', 'inherit');
答案 4 :(得分:0)
对于它的价值而言,这似乎不适用于IE 8中的'过滤器',我不得不使用它(在fadeIn回调中):
$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));
显然,我需要删除一个空的内联过滤器声明,以便CSS生效;还有其他内联规则,所以我不能只删除样式属性。
答案 5 :(得分:-2)
如果有帮助,我用双引号添加了一个问题:
$('#element').css("border-color", "");
在一段时间内不起作用
$('#element').css('border-color', '');
有效