56

(这是在 chrome 扩展中使用内容脚本)

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

例如,如果我想去掉标记为重要的边框:

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

5 回答 5

124

干得好:

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

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

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

于 2012-08-15T01:31:17.873 回答
51

你也可以这样做:

$(".someclass").css("cssText", "border: none !important;");
于 2014-09-12T23:34:37.970 回答
13

This should help.

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

Updated, so as not to overwrite all styles:

var existingStyles = $(".someclass").attr("style");
$(".someclass").attr("style", existingStyles+"border:none!important");
于 2017-11-15T09:02:17.077 回答
0

还有另一种方式

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

css("cssText", "color: red !important;");

于 2015-02-24T12:16:47.813 回答
0

we can just add class using jquery

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

<style>
.test{
border:none !important;
}
</style>
于 2019-05-24T07:20:55.173 回答