2012-08-15 15 views
36

(Esto es el uso de scripts contenidos en una extensión de Chrome)Anulación! Importante con CSS o jQuery

necesito para sobrescribir algunas propiedades CSS que la página web se etiquetados como !important. es posible?

Por ejemplo, si quiero para deshacerse de la frontera que se etiqueta importante:

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

¿Buscó SO? Encontré http://stackoverflow.com/questions/462537/overriding-important-style-using-javascript –

+0

@ ŠimeVidas: esa pregunta es sobre Javascript; esta pregunta es sobre jQuery. La solución puede ser la misma al final, pero el autor de la pregunta no lo habría sabido (ni yo tampoco), y creo que la mayoría de los desarrolladores estarían de acuerdo en que es una buena práctica usar una solución jQuery, cuando existe. –

Respuesta

85

Aquí van:

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

Demostración en directo:http://jsfiddle.net/Gtr54/

El El método .setProperty del elemento style de un elemento le permite pasar un tercer argumento que representa Siente la prioridad. Por lo tanto, está anulando un valor importante con su propio valor importante. Por lo que yo sé, no es posible establecer la prioridad! Importante con jQuery, por lo que su única opción es el método integrado .setProperty.

+0

Funcionó para mí. =) – diggersworld

+2

Falla en IE8 con "El objeto no admite esta propiedad o método" – stuartdotnet

+3

@StuartDobson Sí, falla en IE8 -.- –

45

También puede hacer esto:

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

esto sobrescribirá el estilo – Miguel

+1

Creo que ese es el punto @Miguel: D – hawkeye126

0

También hay otra manera

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

css:; ("cssText", "el rojo! Important;")

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

Esto debería ayudar.