我正在尝试编写一个函数,它将接收一个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并发现结构有些令人困惑。 任何帮助是极大的赞赏。谢谢!
答案 0 :(得分:2)
CSS规则没有名称。也许你的意思是selectorText
?如果是这样,您可以选择正确的规则:
if (getRule === rule.selectorText) {
/* do stuff */
}
getRule
是所需规则的确切选择器。在“精确”的情况下,意味着选择器的确切形式。样式表示例:
.div {...}
#div {...}
div {...}
div:hover {...}
如果您要更改div
课程的规则,则getRule
应为.div
,如果您要更改div.hover
的规则,{{1}应该是getRule
等。