如何在JQuery中删除css属性

Soo*_*Nam 177 jquery

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");
}
Run Code Online (Sandbox Code Playgroud)

我试图删除我添加的两个css属性,但它似乎无法正常工作.虽然怎么样?

Nev*_*vin 323

你可以删除它们:

$(".icha0").css({ 'background-color' : '', 'opacity' : '' });
Run Code Online (Sandbox Code Playgroud)

  • 回答有点太晚了,但我认为这很重要.您必须记住,这只会删除"style"属性中定义的元素属性.这不会产生任何影响如果他们被分配到一个类或类似的. (21认同)
  • 如果您需要通过类删除属性集,可以设置为'inital'而不是'' (10认同)

Mah*_*mal 77

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

$(".icha0").css("background-color","");
$(".icha0").css("opacity","");
Run Code Online (Sandbox Code Playgroud)

正如jquery文档中提到的:

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

  • 来自jqeury css:"但是,它不会删除在样式表或<style>元素中使用CSS规则应用的样式" (14认同)

3Ge*_*Gee 29

要删除内联CSS属性,请使用:

$('.className').css({propertyName: ''});
Run Code Online (Sandbox Code Playgroud)

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

$('.className').removeAttr('style');
Run Code Online (Sandbox Code Playgroud)

我也发现这个建议从样式(单独的文件)中删除CSS属性:

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

但是我根本无法让它工作,所以我把它放在这里仅仅是因为它.

  • $('.className').style.propertyName =''; 必须是$('.className')[0] .style.propertyName =''; - 但这完全是胡说八道 (4认同)

Jiv*_*ngs 21

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

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

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

$(".icha0").addClass('properties'); 
$(".icha0").removeClass('properties');
Run Code Online (Sandbox Code Playgroud)


小智 8

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

我使用了 jQuery 的prop方法。

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

styleObject.removeProperty('background-color');
Run Code Online (Sandbox Code Playgroud)


Vit*_*cus 8

用jquery

  $('#ID').removeAttr("style")
Run Code Online (Sandbox Code Playgroud)

没有jquery

document.getElementById("ID").removeAttribute("style")
Run Code Online (Sandbox Code Playgroud)


小智 6

我们有两种方法,要么直接删除应用于 DOM 元素的 CSS 样式类,要么从元素中删除应用的 CSS 样式

//Remove the class associated with element

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

//Remove the CSS style from DOM element

$('p').css({"color":""});
Run Code Online (Sandbox Code Playgroud)

  • 这个答案没有什么新意,重复其他答案是没有意义的。 (3认同)

And*_*rew 6

替代选项,可以解决一些问题。

向元素添加一个新类,并赋予属性值继承!重要,例如:

CSS

.clearCSS {
    background-color: inherit !important;
}
Run Code Online (Sandbox Code Playgroud)

jQuery

$(".icha0").addClass('clearCSS'); 
Run Code Online (Sandbox Code Playgroud)


Jor*_*ega 6

这实际上是这个答案的复制粘贴,我用它来清除我在之前执行的函数中使用 jQuery 添加的 CSS 样式。

要删除内联 CSS 属性,请使用:

$('.className').css({propertyName: ''});   
Run Code Online (Sandbox Code Playgroud)

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

$('.className').removeAttr('style');
Run Code Online (Sandbox Code Playgroud)

或通过 ID:

$('#idName').removeAttr('style');
Run Code Online (Sandbox Code Playgroud)