【问题标题】:How to always remove inline style for specific element?如何始终删除特定元素的内联样式?
【发布时间】:2017-03-25 01:09:59
【问题描述】:
如何始终删除特定元素的内联样式?
我使用此代码删除我的样式:
jQuery('.myelement').removeAttr('style');
但它不起作用可能是因为另一个 js 代码在我的代码之后添加了内联样式来删除它。调用我的文件后没有 .js 文件。
我知道我可以从照片插件编辑 .js 文件,但如果我更新插件,我将丢失我的更改。
我如何在 jQuery 中写一些东西来告诉这个元素从不有内联样式?
【问题讨论】:
标签:
javascript
jquery
styles
inline-styles
【解决方案1】:
为了确保项目样式始终为空,即使在您的代码之后运行其他代码,您也可以在节点的样式属性更改时使用突变观察器来重置样式,如下所示
let element = document.querySelector(".myelement");
let observer = new MutationObserver((m) => {
if (element.style.length > 0) {
element.style = {};
}
});
observer.observe(element, {
attributes: true,
attributeFilter: ["style"]
});
// now this wont do anything
element.style.backgroundColor = "red";
<div class="myelement">
unicorn
</div>