我怎样才能清除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];
- 删除样式属性
element.removeAttribute('style');
您也可以尝试在样式表中列出css作为!important