If you want to try it, go here
To set a CSS inline style as an !important one in javascript, you have to use the element.setAttribute() method.
But you can't use this one in old IE to set style. There is a specific syntax ;)
| .test { | |
| height: 139px; | |
| width: 96px | |
| } |
| (function(){ | |
| var elements = document.getElementsByTagName( 'div' ); | |
| element = elements[ 0 ]; | |
| // Specific old IE | |
| if ( document.all ) { | |
| element.style.setAttribute( 'cssText', 'background-image: url( "http://placekitten.com/200/300" ) !important' ); | |
| // Modern browser | |
| } else { | |
| element.setAttribute( 'style', 'background-image: url( "http://placekitten.com/200/300" ) !important' ); | |
| } | |
| })(); |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
| <title>How to set an !important css property in javascript</title> | |
| <link href="important.css" media="screen" rel="stylesheet" type="text/css" /> | |
| </head> | |
| <body> | |
| <div class="test">Miaaou</div> | |
| <script type="text/javascript" src="important.js"></script> | |
| <body> | |
| </html> |
How to set the !important css property using pure Javascript (element.dataset.color)
Any solution for the method like below???
el.style.backgroundColor = element.dataset.color
am trying this
el.style.backgroundColor = element.dataset.color + '!important'
Same trick works fine with + '%' , Whats wrong with + '!important'
How to set the !important css property using pure Javascript
(element.dataset.color)
Any solution for the method like below???
el.style.backgroundColor = element.dataset.coloram trying this
el.style.backgroundColor = element.dataset.color + '!important'Same trick works fine with
+ '%', Whats wrong with+ '!important'
The !important tag can't be concatenated onto the end of the string the same way % does, it's not a unit.
How to set the !important css property using pure Javascript
(element.dataset.color)
Any solution for the method like below???
el.style.backgroundColor = element.dataset.color
am trying this
el.style.backgroundColor = element.dataset.color + '!important'
Same trick works fine with+ '%', Whats wrong with+ '!important'The
!importanttag can't be concatenated onto the end of the string the same way%does, it's not a unit.
Its not that far fetched, since !important is concatenated onto the end of the string in style sheets, even though it's not a unit.
I used this to override "Ubermenu" styles... tried everything (even setting style.attribute to null first...) but this worked! I was also using getElement[s]By[Id,ClassName] because those 2 methods work on "live" elements: getElementById Element Object, getElementsByClassName returns a live HTMLCollection (Array like Object) as opposed to querySelector[All] which querySelectorAll returns a static (not live) NodeList, and querySelector an HTMLElement. This matters when attempting to access dynamically generated objects like dropdown lists for example. Thanks again.