0

假设我们有这个

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()

4

2 回答 2

4

干得好:

<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 通过操作样式属性来更改 CSS,因此没有真正的方法来区分什么是原始的,什么是通过编程设置的。(编辑。请参阅下面的评论。)

http://jsfiddle.net/FASvA/

于 2013-09-13T23:13:08.757 回答
2

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

于 2013-09-14T10:21:30.933 回答