web-dev-qa-db-ja.com

cssまたはjqueryで!importantをオーバーライドする

(これはchrome拡張機能でコンテンツスクリプトを使用しています)

Webページで!importantとラベル付けされているcssプロパティを上書きする必要があります。これは可能ですか?

たとえば、重要とラベル付けされた境界線を取り除きたい場合:

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

どうぞ:

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

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

要素のstyleオブジェクトの.setPropertyメソッドを使用すると、優先度を表す3番目の引数を渡すことができます。したがって、!important値を独自の!important値でオーバーライドしています。私の知る限り、jQueryで!important優先度を設定することはできないため、唯一のオプションは組み込みの.setPropertyメソッドです。

110
Šime Vidas

これを行うこともできます:

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

これが役立つはずです。

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

すべてのスタイルを上書きしないように更新されました:

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

別の方法もあります

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

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

0
user2244656

jqueryを使用してクラスを追加できます

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

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