2012-08-15 58 views
36

重要(這是一個Chrome擴展使用內容腳本)重寫!用CSS或jQuery的

我需要重寫該網頁已被標記爲!important一些CSS屬性。這可能嗎?

舉例來說,如果我想擺脫被標記爲重要的邊界:

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

你搜索過嗎?我發現http://stackoverflow.com/questions/462537/overriding-important-style-using-javascript – 2012-08-15 01:29:12

+0

@ŠimeVidas:這個問題是關於Javascript的;這個問題是關於jQuery的。最終的解決方案可能是一樣的,但問題的作者不會知道(我也沒有),並且我認爲大多數開發人員會同意最好使用jQuery解決方案(如果存在的話)。 – 2015-04-21 22:30:33

回答

85

在這裏你去:

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

現場演示:http://jsfiddle.net/Gtr54/

.setProperty元素的style對象的方法使您可以傳遞第三個參數,其中包括優先考慮。所以,你用自己的重要價值壓倒了重要的價值。據我所知,用jQuery設置!重要的優先級是不可能的,所以你唯一的選擇是內置的.setProperty方法。

+0

爲我工作。 =) – diggersworld 2012-09-13 18:00:42

+2

在「對象不支持此屬性或方法」的IE8中失敗 – stuartdotnet 2013-05-14 02:49:08

+3

@StuartDobson是,在IE8中失敗-.- – 2013-05-14 13:48:29

45

你也可以這樣做:

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

這將覆蓋樣式 – Miguel 2015-03-27 13:13:53

+1

我相信這是@Miguel:D – hawkeye126 2015-12-22 16:53:42

0

也有另一種方式

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

CSS:( 「cssText」, 「紅色重要;!」)

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

這應該有所幫助。