2012-08-15 17 views
36

との重要な(これはChromeの拡張機能でコンテンツスクリプトを使用している)オーバーライド!CSSやjqueryの

私は、Webページが!importantとしてラベル付けされたいくつかのCSSプロパティを上書きする必要があります。これは可能ですか?私は重要なラベル付けされた境界線を取り除きたい場合は

は例えば、以下は

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

SOを検索しましたか?私はhttp://stackoverflow.com/questions/462537/overriding-important-style-using-javascriptを見つけました –

+0

@ŠimeVidas:その質問はJavascriptに関するものです。この質問はjQueryに関するものです。解決策は最終的には同じかもしれませんが、問題の著者はそれを知っていませんでした(私もそうではありませんでした)。ほとんどの開発者は、jQueryソリューションを使用するのがベストプラクティスであると思います。 –

答えて

85

あなたが行く:

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

ライブデモ:http://jsfiddle.net/Gtr54/

要素のstyleオブジェクトの.setPropertyメソッドを使用すると、3番目の引数を渡すことができます優先順位を払う。したがって、重要な価値をあなた自身の重要な価値で上書きしています。私が知る限り、jQueryで重要な優先順位を設定することはできないため、唯一のオプションは組み込まれた.setPropertyメソッドです。

+0

私のために働いた。 =) – diggersworld

+2

"オブジェクトはこのプロパティまたはメソッドをサポートしていません" IE8で失敗します – stuartdotnet

+3

@StuartDobsonはい、IE8で失敗します.- –

45

また、これを行うことができます。

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

これはスタイルを上書きする – Miguel

+1

私はそれがポイント@Miguelだと信じています:D – hawkeye126

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"); 

これは役立ちます。

関連する問題