857 Stimmen

Wie wendet man !important mit .css() an?

Ich habe Probleme bei der Anwendung eines Stils, der !important . Ich habe es versucht:

$("#elem").css("width", "100px !important");

Dies bedeutet nichts ; keine Breite Stil überhaupt angewendet wird. Gibt es eine jQuery-ish Weise der Anwendung eines solchen Stils, ohne zu überschreiben cssText (was bedeuten würde, dass ich sie zuerst parsen müsste usw.)?

Editar : Ich sollte hinzufügen, dass ich ein Stylesheet mit einem !important Stil, den ich versuche, mit einer !important Stil inline, also mit .width() und dergleichen funktioniert nicht, da sie von meiner externen Software überschrieben wird. !important Stil.

Außerdem wird der Wert, der den vorherigen Wert überschreibt wird errechnet Ich kann also nicht einfach einen anderen externen Stil erstellen.

7voto

Álvaro González Punkte 134708

Zu Ihrer Information: Es funktioniert nicht, weil jQuery es nicht unterstützt. Es gab ein Ticket auf 2012 eingereicht ( #11173 $(elem).css("property", "value !important") schlägt fehl ), das schließlich als WONTFIX geschlossen wurde.

6voto

Zuerst müssen wir den vorherigen Stil entfernen. Ich entferne ihn mit einem regulären Ausdruck. Hier ist ein Beispiel für die Änderung der Farbe:

var SetCssColorImportant = function (jDom, color) {
       var style = jDom.attr('style');
       style = style.replace(/color: .* !important;/g, '');
       jDom.css('cssText', 'color: ' + color + ' !important;' + style); }

6voto

nobjta_9x_tq Punkte 1098

Ich denke, es funktioniert gut und kann jedes andere CSS vorher überschreiben (dies: DOM-Element):

this.setAttribute('style', 'padding:2px !important');

6voto

SerzN1 Punkte 1584

Vielleicht sieht es so aus:

Cache

var node = $('.selector')\[0\];
OR
var node = document.querySelector('.selector');

CSS einstellen

node.style.setProperty('width', '100px', 'important');

CSS entfernen

node.style.removeProperty('width');
OR
node.style.width = '';

6voto

h0mayun Punkte 3369

Ein alternativer Weg, den Stil im Kopf anzuhängen:

$('head').append('<style> #elm{width:150px !important} </style>');

Damit wird der Stil an alle Ihre CSS-Dateien angehängt, so dass er eine höhere Priorität als andere CSS-Dateien hat und angewendet wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X