如何在jQuery中删除CSS属性


197
if(prev_clicked)
{   
    $("#accordion li a.category").css('background-image', 'url("img/off_all_channel.png")');                    
    $("#accordion li a.comment").css('background-image', 'url("img/on_all_online.png")');                   
    $(".icha0").removeProperty("background-color");
    $(".icha0").removeProperty("opacity");
}
else
{   
   $(".icha0").css("background-color","#D5D5D2");
   $(".icha0").css("opacity","0.70");
}

我正在尝试删除添加的两个CSS属性,但似乎无法正常工作。可以吗


1
另外,在此处发布之前,请尝试使用Google。我毫不怀疑您在此处发布的确切标题的第一个结果将返回可接受的结果。我不知道你从哪里来.removeProperty()
基督教徒

1
@Christian Varga,有趣的是,既然他已经发布了这个问题,这是第一个Google搜索结果。第二个结果是另一个正确的堆栈溢出答案。第三个是“ removeProp()”,第四个是“ removeAttr()”,这两个都是错误的。
rocketsarefast

Answers:


369

您可以通过以下方式删除它们:

$(".icha0").css({ 'background-color' : '', 'opacity' : '' });

26
现在回答还为时已晚,但我认为这很重要。您必须记住,这只会删除在“样式”属性中定义的元素的属性。如果将它们分配给一个班级或类似班级,则不会有任何效果。
何塞·卡洛斯(JoséCarlos)

15
如果你需要通过类来删除属性设置,可以设置为“inital”而不是“”
詹姆斯·布赖尔利

82

您也可以使用.css()删除css属性,如下所示:

$(".icha0").css("background-color","");
$(".icha0").css("opacity","");

如jquery文档中所述:

将样式属性的值设置为空字符串,例如$('#mydiv')。css('color','')-如果该属性已被直接应用,则将其从元素中删除,


16
来自jqeury css:“但是,它不会删除样式表或<style>元素中已应用CSS规则的样式”
eggmatters

36

要删除嵌入式CSS属性,请使用:

$('.className').css({propertyName: ''});

要删除元素的整个内联样式,请使用:

$('.className').removeAttr('style');

我还发现了从样式(单独文件)使用中删除CSS属性的建议:

$('。className')。style.propertyName ='';

但是我根本无法使它正常工作,因此我仅将其放在此处供参考。


4
$('。className')。style.propertyName =''; 必须为$('。className')[0] .style.propertyName =''; -但它abolutly废话
超新星

20

您可以将属性设置回空白:

$(".icha0").css("background-color","");

或者,您可以更改代码以使用CSS文件中定义的类:

$(".icha0").addClass('properties'); 
$(".icha0").removeClass('properties');

帮助消除了由于嵌套3D透视而产生的锯齿状边缘。为了解决反别名问题,我为删除其中一个观点而感到沮丧,这篇文章挽救了我的一天!谢谢!
理查德·严

3

我们有两种方法,您可以直接删除应用于DOM元素的已应用CSS样式类,也可以从element中删除已应用的CSS样式。

//Remove the class associated with element

$('#ID').removeClass("cssClass");

//Remove the CSS style from DOM element

$('p').css({"color":""});

3
此答案没有新内容,重复其他答案毫无意义。
暗影巫师为您耳边

3

我遇到了这个问题,但是在这里我没有看到任何可以满足操作要求的解决方案。大多数解决方案建议摆脱不值得的整个样式属性。

我使用了jQuery的prop方法。

var styleObject = $('my-selector').prop('style'); 

styleObject.removeProperty('background-color');

2

替代不理想的选择,但可能解决各种问题。向元素添加一个新类,其值具有herit

的CSS

.clearCSS {
    background-color: inherit !important;
}

jQuery的

$(".icha0").addClass('clearCSS'); 

2

从字面上看,这是此答案的复制粘贴,我用它来清除我在先前执行的函数中用jQuery添加的CSS样式。

要删除嵌入式CSS属性,请使用:

$('.className').css({propertyName: ''});   

要删除元素的整个内联样式,请使用:

$('.className').removeAttr('style');

或按ID:

$('#idName').removeAttr('style');


1

如果您需要删除而不更新特定属性,则可以简单地使用 removeProp而不是removeProperty

$(".icha0").removeProp("background-color");
$(".icha0").removeProp("opacity");
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.