измените цвет фона div с помощью jquery с тегом! важный

Использование плагина, который вызывает .jsp, который использует свою собственную таблицу стилей, размещенную извне (это вставка yelp - попытка манипулировать ее внешним видом). У одного элемента, который я пытаюсь изменить, есть тег! Важный, и я не могу изменить его ...

Я старался

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

но безрезультатно. Идеи?

 Faust20 мая 2012 г., 16:18
 Naveed20 мая 2012 г., 16:16
Показать эту часть HTML, а также.
 David Thomas20 мая 2012 г., 16:18
Если!important было объявлено во внешней таблице стилей, что настройка переопределяет любые другие настройки, независимо от обычного порядка специфичности, если только более поздние (более специфичные) стилиalso объявлять!important, Кстати, этот вопрос может иметь к вам отношение:stackoverflow.com/questions/2655925/…

Ответы на вопрос(5)

Решение Вопроса

что в более современных версиях 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/.

Original answer:

Note: this may be a bad idea, as it will remove any other inline styles

Я бы отредактировал атрибут style напрямую

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

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

 elzi20 мая 2012 г., 17:11
Это сработало - хотя @RichardTowers был прав. Это все стереть (не проблема, можно воссоздать). Спасибо!
 20 мая 2012 г., 16:32
Хотя это приведет к появлению любых стилей, уже прикрепленных к элементу, что может быть плохой новостью. Я думаю, что добавление класса безопаснее.

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

Идея состоит в том, чтобы добавить класс:

$('.elementToChange').addClass('blackBg');
 20 мая 2012 г., 17:10
попробуйте загрузить style.css после ybadge.css в вашем html. Вы можете сделать это?
 elzi20 мая 2012 г., 17:03
это почти сработало ... вот скриншот:d.pr/i/qxPl  верхняя часть - это внешняя таблица стилей. background: blue - это то, что я добавил с помощью jquery. ниже что-то в моем css работало, так как у внешнего css не было тега! Important. совет?

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

function replaceBGColorImportant(element,newColor){
    var styles = element.getAttribute('style');
    styles = styles?styles.split(';'):[];
    var newStyles = [];
    styles.map(function(x){
        if (x.split(':')[0] != "background-color")
            newStyles.push(x);
    });
    newStyles.push('background-color:#'+newColor+' !important');
    element.setAttribute('style',newStyles.join(';'));
}

Выполните следующим образом:

replaceBGColorImportant(document.body,'#009922');

вы можете использовать inline-css или Внутренний CSS, или вы можете загрузить свой собственный внешний CSS по порядку этого предварительно загруженного CSS, это поможет вам переопределить этот CSS своим собственным.

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

    //Second Solution
    Internal CSS -->
    </head>
    <body>
<!--
Third solution
//Inline CSS
->
    </body>
    </html>

Ваш ответ на вопрос