2012-08-15 11 views
36

(Questo è l'utilizzo di script contenuto in un'estensione Chrome)Overriding! Importante con CSS o jquery

ho bisogno di sovrascrivere alcune proprietà CSS che la pagina web ha etichettati come !important. È possibile?

Per esempio, se voglio sbarazzarsi di confine che è etichettato importante:

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

Hai cercato SO? Ho trovato http://stackoverflow.com/questions/462537/overriding-important-style-using-javascript –

+0

@ ŠimeVidas: Questa domanda riguarda Javascript; questa domanda riguarda jQuery. La soluzione potrebbe essere la stessa alla fine, ma l'autore della domanda non avrebbe saputo che (né io), e penso che la maggior parte degli sviluppatori sarebbe d'accordo che è meglio usare una soluzione jQuery, quando ne esiste una. –

risposta

85

Qui si va:

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

demo dal vivo:http://jsfiddle.net/Gtr54/

Il .setProperty metodo dell'oggetto style di un elemento consente di passare un terzo argomento che repre assegna la priorità. Quindi, stai sovrascrivendo un valore! Importante con il tuo! Valore importante. Per quanto ne so, non è possibile impostare la priorità! Importante con jQuery, quindi l'unica opzione è il metodo integrato .setProperty.

+0

Ha funzionato per me. =) – diggersworld

+2

Errore in IE8 con "Oggetto non supporta questa proprietà o metodo" – stuartdotnet

+3

@StuartDobson Sì, non riesce in IE8 -.- –

45

si può anche fare questo:

$(".someclass").css("cssText", "border: none !important;"); 
+4

questo sovrascriverà lo stile – Miguel

+1

Credo che sia questo il punto @Miguel: D – hawkeye126

0

c'è anche un altro modo

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

css:; ("cssText", "Colore rosso importante;!")

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

Questo dovrebbe aiutare.

Problemi correlati