16

外部でホストされている独自のスタイルシートを使用する .jsp を呼び出すプラグインを使用する (これは yelp の埋め込みであり、外観を操作しようとしています)。私が変更しようとしている 1 つの要素には !important タグがあり、変更できないようです...

私は試した

<script type="text/javascript">
   $('.elementToChange').css({'background-color':'black'});​
</script>

無駄に。アイデア?

4

5 に答える 5

44

jQuery の最新バージョン (少なくとも 1.7.2 以降) では、css を簡単に設定できるようです。

$('#elementToChange').css('background-color', 'blue');

http://jsfiddle.net/HmXXc/185/を参照してください

古いバージョンの jQuery と Zepto では、最初に css をクリアする必要がありました。

// Clear the !important css
$('#elementToChange').css('background-color', '');

そして、次を使用してリセットします。

$('#elementToChange').css('background-color', 'blue');

またはワンライナーで:

$('#elementToChange')
    .css('background-color', '')
    .css('background-color', 'blue');

http://jsfiddle.net/HmXXc/186/を参照してください。

元の答え:

注: 他のインライン スタイルが削除されるため、これは悪い考えかもしれません。

スタイル属性を直接編集します

$('.elementToChange').attr('style', 'background-color: blue !important');

http://jsfiddle.net/RichardTowers/3wemT/1/

于 2012-05-20T14:28:26.010 に答える
4

これがあなたの解決策です:

http://jsfiddle.net/irpm/bdhpp/2/

アイデアは、クラスを追加することです:

$('.elementToChange').addClass('blackBg');
于 2012-05-20T14:23:59.667 に答える
1

次の手順を使用して !important css を操作できます。インライン css または内部 css を使用するか、事前に読み込まれた css の順序の後に独自の外部 css を読み込むことができます。これは、その css をカスタムのものでオーバーライドするのに役立ちます。

 <html>
    <head>
    <!--
    //First Solution
    //PreloaderCSS
    //YourCustomCSS

    //Second Solution
    Internal CSS -->
    </head>
    <body>
<!--
Third solution
//Inline CSS
->
    </body>
    </html>
于 2017-04-18T17:07:41.500 に答える
0

正規表現経由: https://jsfiddle.net/7jj7gq3y/2/

HTML:

<div class="elementToChange" style=" background-color: yellow !important; width: 100px; height: 100px;"></div>

JavaScript:

var setImportantStyle = function(element, attributeName, value) {
    var style = element.attr('style');
    if (style === undefined) return;
    var re = new RegExp(attributeName + ": .* !important;", "g");
    style = style.replace(re, "");
    element.css('cssText', attributeName + ': ' + value + ' !important;' + style);
}
setImportantStyle($('.elementToChange'), 'background-color', 'red');
于 2016-05-11T00:31:40.060 に答える