I have a multiple style
tags in my webpage, and i want to manipulate the cssRules
in them. How can I get the styleSheet
as in document.styleSheets
object from a style element. A way could be scanning all the styleSheets
in document.styleSheets
and match its ownerNode
with my style
element object. Is there any better way that this?
Per http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-style-element , the style element implements the LinkStyle
interface which by following the references can lead one to http://dev.w3.org/csswg/cssom/#the-linkstyle-interface which indicates that there is a sheet
property you can access for each style element (as with <link rel="stylesheet">
)--as long as they are text/css
, the default. From there you can get the more specialized CSSStyleSheet interface you are looking for (i.e., the one with cssRules
).
<style>
p {color:blue;}
</style>
<script>
var h = document.getElementsByTagName('style')[0];
alert(h.sheet.cssRules[0].cssText); // "p { color: blue; }"
</script>