清除所有 Javascript 应用的样式

Clear all Javascript-applied styles

本文关键字:样式 应用 Javascript 清除      更新时间:2023-09-26

假设我们有这个

var e = document.getElementById("someElement");
e.style.borderColor = "gold";
e.style.background = "yellow";
e.style.padding = "5px";
// more style modifications via javascript

可能已设置了内联样式或在外部 CSS 文件中设置了其他样式。

有没有一种方法可以清除所有Javascript应用的样式?喜欢e.style.* = inherite.removeJavaScriptAppliedStyles().

你来了:

<div>hi</div>
<div>hi</div>
<div>hi</div>
<div>hi</div>
<div id="click">click</div>

//

$("div").css("color", "red");
$("#click").click(function () {
    $("*").removeAttr("style");
});

请记住James Bruckner的警告,这会杀死所有硬编码到原始HTML中的内联样式。由于Javascript通过操作style属性来更改CSS,因此没有真正的方法来区分什么是原始的,什么是以编程方式设置的。(编辑。请参阅下面的评论。

http://jsfiddle.net/FASvA/

作为一个选项,您可以将初始style属性 ( e._originalStyle = e.style.cssText ) 存储在私有属性中,并在需要删除通过 javascript 应用的所有样式时恢复它 ( e.style.cssText = e._originalStyle