从JS改变规则selectorText?

时间:2012-09-21 07:42:12

标签: javascript css dom

是否可以从javascript更改CSSRule的{​​{1}}? MDN说它是一个吸气剂/装定剂,但设定它似乎没有效果......

参考:

https://developer.mozilla.org/en-US/docs/DOM/CSSStyleRule/selectorText?redirectlocale=en-US&redirectslug=DOM%2FcssRule.selectorText

  

selectorText()获取/设置规则集的选择器的文本表示。

编辑: 所有的“文档”都是错误的和误导性的。

http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule

.selectorText

1 个答案:

答案 0 :(得分:2)

不,确实显示浏览器实现(至少在Firefox中)选择将这些选择为只读(因为selectorText(以及cssText这个事实显然允许这样做)可以抛出“NO_MODIFICATION_ALLOWED_ERR:如果规则是只读的话会引发。”。)。

但是,您可以修改样式属性:

<style>
body { background-color: darkblue; }
</style>
<p>abc</p>
<script>
  var stylesheet = document.styleSheets[0]
  stylesheet.cssRules[0].style.color = 'red'; // Will make body red
</script>

但是,您可以通过创建和插入<style>您设置的innerHTML标记,而无需解析CSS。