获取样式表规则Javascript / jQuery

时间:2012-10-05 20:39:00

标签: javascript css stylesheet rule

我正在尝试编写一个函数,它将接收一个CSS规则以与CSS一起更新以更新规则,到目前为止,我有以下内容:

getCSSRule:function(getRule, newRule){
    var styles=document.styleSheets;
    for(var i=0,l=styles.length; i<l; ++i){
        var sheet=styles[i]; 

        if(sheet.title === "style"){
            var rules=sheet.cssRules;
            for(var j=0, l2=rules.length; j<l2; j++){
                var rule=rules[j];

                // SELECT APPROPRIATE RULE IN STYLESHEET
                if(getRule === rule){  

                    // LOSE IT HERE

                };
            };
        };
    };
},

到目前为止代码有效。它找到所有样式表,按标题逐个目标,然后循环遍历样式表的规则。我现在遇到的问题是将getRule(传递给函数的CSS规则名称)与CSS中的规则进行比较。我是新手使用document.styleSheets并发现结构有些令人困惑。 任何帮助是极大的赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

CSS规则没有名称。也许你的意思是selectorText?如果是这样,您可以选择正确的规则:

if (getRule === rule.selectorText) {
    /* do stuff */
}

getRule是所需规则的确切选择器。在“精确”的情况下,意味着选择器的确切形式。样式表示例:

.div {...}
#div {...}
div {...}
div:hover {...}

如果您要更改div课程的规则,则getRule应为.div,如果您要更改div.hover的规则,{{1}应该是getRule等。