如何使用jQuery取消元素的CSS属性?
如果我使用以下方法在特定元素上设置CSS值:
$('#element').css('background-color', '#ccc');
我希望能够取消设置特定于元素的值并使用级联值,如下所示:
$('#element').css('background-color', null);
但是,这种语法似乎不工作 – 这是可能的使用另一种语法?
提前致谢!
编辑:值不是从父元素inheritance – 原始值来自元素级select器。 对不起,有什么困惑!
从jQuery文档 :
将样式属性的值设置为一个空string – 例如
$('#mydiv').css('color', '')
– 如果元素已经被直接应用,属性,通过jQuery的.css()
方法,或者通过对style
属性的直接DOM操作。 但是,它不会删除样式表或<style>
元素中已应用CSS规则的样式。
我想你也可以这样做:
$('#element').css('background-color', '');
这就是我很久以前用plain-old-javascript的display
属性来显示/隐藏一个字段的情况。
实际上,我认为是不正确的(使用null
)的语法似乎正在工作 – 我的select器只是不正确的形成,从而没有任何元素。 D'哦!
尝试这个:
$('#element').css('background-color', 'inherit');
对于什么是值得的这似乎不工作在IE 8的“filter”,我不得不使用这个(在淡入callback):
$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));
显然,我需要删除一个空的内联filter声明,以便CSS生效; 还有其他的内联规则,所以我不能删除样式属性。