1

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?

Brett Zamir
  • 14,034
  • 6
  • 54
  • 77
Moazzam Khan
  • 3,130
  • 2
  • 20
  • 35

1 Answers1

3

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>
Brett Zamir
  • 14,034
  • 6
  • 54
  • 77