覆盖!重要的是css或jquery

时间:2012-08-15 01:23:25

标签: jquery css content-script important

(这是在Chrome扩展程序中使用内容脚本)

我需要覆盖网页标记为!important的一些css属性。这可能吗?

例如,如果我想摆脱标记为重要的边界:

$(".someclass").css('border','none'); //does not work

5 个答案:

答案 0 :(得分:107)

你走了:

$( '.someclass' ).each(function () {
    this.style.setProperty( 'border', 'none', 'important' );
});

现场演示: http://jsfiddle.net/Gtr54/

元素.setProperty对象的style方法使您能够传递表示优先级的第三个参数。所以,你用你自己的重要价值来覆盖一个重要的价值。据我所知,无法使用jQuery设置!important优先级,因此您唯一的选择是内置.setProperty方法。

答案 1 :(得分:48)

你也可以这样做:

$(".someclass").css("cssText", "border: none !important;");

答案 2 :(得分:5)

这应该有所帮助。

$(".someclass").attr("style","border:none!important");

已更新,以免覆盖所有样式:

var existingStyles = $(".someclass").attr("style");
$(".someclass").attr("style", existingStyles+"border:none!important");

答案 3 :(得分:0)

还有另一种方式

$("#m_divList tbody").find("tr[data-uid=" + row.uid + "]").find('td').css("cssText", "color: red !important;");

css(" cssText","颜色:红色!重要;");

答案 4 :(得分:0)

我们可以使用jquery添加类

$("someclass").addClass("test");

<style>
.test{
border:none !important;
}
</style>