我怎样才能清除JavaScript的所有内联样式,只留下在CSS样式表中指定的样式?

如果我在我的html中有以下内容:

<div style="height:300px; width:300px; background-color:#ffffff;"></div> 

这在我的CSS样式表:

 div { width:100px; height:100px; background-color:#000000; } 

有没有什么办法,用javascript / jquery,删除所有的内联样式,只留下CSS样式表指定的样式?

$('div').attr('style', '');

要么

$('div').removeAttr('style'); (来自Andres的答案 )

为了使这个更小一点,试试这个:

$('div[style]').removeAttr('style');

这应该加快一点,因为它会检查div是否具有style属性。

无论哪种方式,如果你有大量的div,这可能需要一些时间来处理,所以你可能要考虑其他方法比JavaScript。

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

普通JavaScript:

你不需要jQuery来做这样的事情。 只需使用.removeAttribute()方法。

假设你只是一个单一的元素,你可以很容易的使用下面的例子

 document.querySelector('#target').removeAttribute('style'); 

如果您要定位多个元素,只需循环选定的元素集合(示例)

 var target = document.querySelectorAll('div'); Array.prototype.forEach.call(target, function(element){ element.removeAttribute('style'); }); 

Array.prototype.forEach() – IE9及以上版本/ .querySelectorAll() – IE 8(部分)IE9及以上版本。

我正在使用$('div').attr('style', ''); 技术,并没有在IE8中工作。

我使用alert()输出了style属性,并没有去掉内联样式。

.removeAttr最终在IE8中诀窍。

如果你只需要清空一个元素的style ,那么:
element.style.cssText = null;
这应该做好。 希望能帮助到你!

这可以分两步完成:

1:通过标记名,编号,类别等select要更改的元素

var element = document.getElementsByTagName('h2')[0];

  1. 删除样式属性

element.removeAttribute('style');

您也可以尝试在样式表中列出css作为!important