覆盖!重要的风格

2022-08-30 01:27:49

标题几乎总结了它。

外部样式表具有以下代码:

td.EvenRow a {
  display: none !important;
}

我尝试过使用:

element.style.display = "inline";

element.style.display = "inline !important";

但两者都不起作用。是否可以使用javascript覆盖一个!important样式。

这是为了润滑猴扩展,如果这有所作为的话。


答案 1

您可以使用几个简单的单行代码来执行此操作。

  1. 在元素上设置“样式”属性

    element.setAttribute('style', 'display:inline !important');

或。。。

  1. 修改对象的属性:cssTextstyle

    element.style.cssText = 'display:inline !important';

任何一个都会完成这项工作。

===

我写了一个名为“important”的jQuery插件来操作元素中的规则,http://github.com/premasagar/important!important

===

编辑:正如在注释中分享的那样,标准CSSOM接口(JavaScript与CSS交互的API)提供了setProperty方法:

element.style.setProperty(propertyName, value, priority);

例如:

document.body.style.setProperty('background-color', 'red', 'important');

答案 2

element.style有一个方法可以将优先级作为第三个参数:setProperty

element.style.setProperty("display", "inline", "important")

它在旧的IE中不起作用,但在当前的浏览器中应该没问题。