Javascript 删除通过样式表应用的CSS属性

Javascript 删除通过样式表应用的CSS属性,javascript,jquery,Javascript,Jquery,有没有办法删除通过CSS样式表应用的CSS属性 例如: test.css .test { background: red; } test.html <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <link rel="stylesheet" href="test.css"> <div class="test">Fo

有没有办法删除通过CSS样式表应用的CSS属性

例如:

test.css

.test { background: red; }
test.html

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link rel="stylesheet" href="test.css">

<div class="test">Foo</div>

<script>
$('.test').each(function(i, block) {
    $(this).css('background', '');
});
</script>

但同样,这有点超出了我的问题范围。

您不能修改样式表中的值,您可以像在示例中那样覆盖它

$(this).css('background', 'transparent');
或者在样式表中使用另一个具有所需属性的类,并用JS替换这些类

$(this).removeClass('test');
$(this).addClass('your-other-class');

在网站运行时,不应修改CSS文件

一个小技巧是用您以前定制的另一个CSS文件替换当前活动的CSS文件

您可以这样做(必须使用JQUERY)


或者,您可以简单地准备第二个类,在需要时替换第一个类

如果不从html元素中删除类,则无法删除样式。您只能通过使用javascript操作DOM或更新HTML来实现这一点

但是您可以通过在原始css文件之后导入新的css文件来覆盖样式

在css导入后的html中添加样式元素,以覆盖css中的样式,而不使用javascript


通过向HTML源添加内联样式元素或使用Javascript。

删除元素中的类测试,您无法删除CSS属性。默认情况下,它总是设置为某个值,即使您不手动执行。您需要将该值设置为红色以外的其他值。默认值是透明的。您认为“超出范围”的解决方案是唯一可以做到这一点的方法-除了直接删除样式表中的规则之外,您是否希望在不删除类的情况下执行此操作(对于类比显示的类更复杂并且具有其他您不想删除的属性的情况)?
$(this.css('background','')无效。而是将背景设置为none
$(this.css('background','none')@Pugazh-空字符串不是无效的。它的作用是删除任何内联
background
属性,从而使样式表中的其他设置生效。(这对OP没有帮助,但从一般意义上来说……绝对不是无效的。)
$(this).css('background', 'transparent');
$(this).removeClass('test');
$(this).addClass('your-other-class');
$('link[href="yourfirstfile.css"]').attr('href','yoursecondfile.css');