如何包含!在jquery中很重要

时间:2009-12-31 17:03:53

标签: jquery

我正在尝试使用类似

的jQuery在css属性中添加!important
$("tabs").css('height','650px;!important');

但是!重要没有效果。如何包含!在jquery中很重要?

8 个答案:

答案 0 :(得分:142)

显然可以在jQuery中执行此操作:

$("#tabs").css("cssText", "height: 650px !important;");

Src:http://bugs.jquery.com/ticket/2066

答案 1 :(得分:6)

我用以下方法解决了这个问题:

inputObj.css('cssText', inputObj.attr('style')+'padding-left: ' + (width + 5) + 'px !IMPORTANT;');

所以没有内联样式丢失,最后一个覆盖第一个

答案 2 :(得分:5)

还可以添加更重要的属性:

inputObj.attr('style', 'color:black !important; background-color:#428bca !important;');

答案 3 :(得分:2)

如果您需要让jquery对多个项目使用!important,这就是您的处理方式。

例如将img标签的最大宽度和最大高度分别设置为500px

$('img').css('cssText', "max-width: 500px !important;' + "max-height: 500px !important;');

答案 4 :(得分:1)

var tabsHeight = 650;

$("tabs").attr('style', 'height: '+ tabsHeight +'px !important');

OR

#CSS
.myclass{height:650px !important;}

然后

$("tabs").addClass("myclass");

答案 5 :(得分:1)

在那些需要使用jquery设置!important属性的情况下,这是我构建的一个插件,可以使用它。

$.fn.important = function(key, value) {
    var q = Object.assign({}, this.style)
    q[key] = `${value} !important`;
    $(this).css("cssText", Object.entries(q).filter(x => x[1]).map(([k, v]) => (`${k}: ${v}`)).join(';'));
};

$('div').important('color', 'red');

答案 6 :(得分:0)

例如,如果您确实需要覆盖其中具有!important规则的css,则在我最近遇到的情况下,覆盖一个wordpress主题需要!important scss规则才能破坏该主题,但是由于我正在编译代码使用webpack和(我认为这是为什么-)我的CSS在转译的javascript之后出现在链中,您可以在样式表中添加一个单独的类规则,该类规则会覆盖级联中的第一个!important规则,并切换较重的加权类,而不是动态调整CSS。只是一个想法。

答案 7 :(得分:-1)

使用jQuery修改CSS时不需要!important,因为它直接修改了DOM中元素的style属性。仅在样式表中需要!important以禁止在较低级别覆盖特定样式规则。直接修改style 是您可以去的最低级别,因此!important没有任何意义。