3

是否可以从 javascript更改 a CSSRule.selectorTextMDN 说它是一个 getter/setter 但设置它似乎没有效果......

参考 :

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

attribute DOMString        selectorText;
                                      // raises(DOMException) on setting
4

1 回答 1

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>的标签来解决问题,而无需解析 CSS。innerHTML

于 2012-09-21T08:12:07.260 回答