是否可以设置cssRule的cssText属性

时间:2013-09-05 17:59:55

标签: javascript css

我正在尝试编辑cssRule的cssText属性。我经常看到它:

通常使用以下命令完成:cssText.replace(...)。

除了我以外,似乎对所有人都有效。有人可以解释一下为什么以下内容不起作用:

    var cssText = document.styleSheets[1].cssRules[0].cssText;
    document.styleSheets[1].cssRules[0].cssText = cssText.replace( "red", "yellow" );

小提琴在这里:http://jsfiddle.net/KbkFH/3/

3 个答案:

答案 0 :(得分:6)

你几乎拥有它。您刚刚错过了style

$( document ).ready(
function() {
    //.style was missing
    var cssText = document.styleSheets[1].cssRules[0].style.cssText;
    document.styleSheets[1].cssRules[0].style.cssText = cssText.replace( "red", "yellow" );
    }
);

更新了小提琴:http://jsfiddle.net/KbkFH/6/

注意:如果规则包含类名redesign,则会将类名替换为yellowesign,这可能不是您想要的。使用替换时请小心,不要解析样式或定位特定样式。

答案 1 :(得分:0)

实际上,您的代码正在按预期工作。

  

CSSRule.cssText: cssText返回的实际文本   风格规则

选中此Using dynamic styling information

答案 2 :(得分:0)

Javascript DOM风格

  var div = document.querySelectorAll("div");
 
  div[0].style.cssText = "border: 5px solid yellow; padding: 10px"; 
  div[1].setAttribute("style", "border: 5px solid red; margin: 20px");
<div>cssText yellow</div>
<div>setAttribute red</div>