如果我用设置一个特定的元素上的CSS值:如何使用jQuery取消元素的CSS属性?
$('#element').css('background-color', '#ccc');
我希望能够取消设置特定元素的值,并使用级联值,沿着线:
$('#element').css('background-color', null);
但是,这种语法似乎不工作 - 这可能使用另一种语法?
在此先感谢!
编辑:该值不是从父元素继承的 - 原始值来自元素级选择器。对不起,有任何困惑!
如果我用设置一个特定的元素上的CSS值:如何使用jQuery取消元素的CSS属性?
$('#element').css('background-color', '#ccc');
我希望能够取消设置特定元素的值,并使用级联值,沿着线:
$('#element').css('background-color', null);
但是,这种语法似乎不工作 - 这可能使用另一种语法?
在此先感谢!
编辑:该值不是从父元素继承的 - 原始值来自元素级选择器。对不起,有任何困惑!
的样式属性的值设置为空字符串 - 例如
$('#mydiv').css('color', '')
- 如果元素已经直接应用,则将其从元素中移除,无论是在HTML样式属性中,通过jQuery的.css()
方法,还是通过对style
属性的直接DOM操作。但是,它不会删除已在样式表或<style>
元素中应用CSS规则的样式。
试试这个:
$('#element').css('background-color', 'inherit');
其实,我认为语法是不正确的(与null
)似乎是工作 - 我的选择只是不当形成的,从而产生没有元素。 D'哦!
从jquery 1.4.3`css(...,null)`不起作用,`css(...,'')`应该用来代替 - http://bugs.jquery.com/ticket/ 7233 – 2011-04-04 23:37:43
@cdleary您应该更正您的答案或选择正确的答案。 – 2014-07-25 09:42:00
我想你也可以这样做:
$('#element').css('background-color', '');
这就是我用来做一个很久以前的display
物业以纯老JavaScript来显示/隐藏字段。
对于它的价值,这似乎不是在IE 8中运行的“过滤器”,我只好用这种(以淡入回调):显然
$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));
,我需要删除一个空的内联过滤器声明,以便CSS可以生效;还有其他内联规则,所以我不能删除style属性。
不幸的是,继承不是我正在寻找的行为:“该属性采用与该元素父级的属性相同的计算值”来自http://www.w3.org/TR/CSS2/cascade.html – cdleary 2009-01-29 09:02:32