【问题标题】: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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-24
      • 2013-01-05
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2015-08-27
      • 2015-03-03
      • 1970-01-01
      相关资源
      最近更新 更多