2012-08-15 15 views
36

(To jest za pomocą skryptów treści w rozszerzeniu Chrome)Zastępowanie! Important z CSS i jQuery

muszę zastąpić niektóre właściwości css, że strona internetowa jest oznaczone jako !important. czy to możliwe?

Na przykład, jeśli chcę się pozbyć granicy oznaczonego Ważne:

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

Czy szukałeś SO? Znalazłem http://stackoverflow.com/questions/462537/overriding-important-style-using-javascript –

+0

@ ŠimeVidas: To pytanie dotyczy Javascript; to pytanie dotyczy jQuery. Rozwiązanie może być takie samo na końcu, ale autor pytania nie wiedziałby o tym (ani ja), i myślę, że większość programistów zgodziłaby się, że najlepszą praktyką jest użycie rozwiązania jQuery, gdy takie istnieje. –

Odpowiedz

85

tu proszę:

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

żywo demo:http://jsfiddle.net/Gtr54/

The .setProperty metoda obiektu elementu style obiekt umożliwia przekazanie trzeciego argumentu, który reprezentuje wysyła priorytet. Tak więc nadpisujesz ważną wartość ze swoją własną ważną wartością. O ile mi wiadomo, nie jest możliwe ustawienie ważnego priorytetu z jQuery, więc jedyną opcją jest wbudowana metoda .setProperty.

+0

Pracowałem dla mnie. =) – diggersworld

+2

Fails w IE8 z "Obiekt nie obsługuje tej właściwości lub metody" – stuartdotnet

+3

@StuartDobson Tak, nie powiodło się w IE8 -.- –

45

Można też to zrobić:

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

to nadpisze styl – Miguel

+1

Wierzę, że to jest punkt @Miguel: D – hawkeye126

0

jest też inny sposób

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

css:; ("parametr CSSText", "kolor czerwony ważne;!")

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

To powinno pomóc.