我正在尝试编写一些辅助函数,以便可以通过JavaScript编辑CSS类。这就是我所拥有的,但是我不明白为什么它总是返回“undefined”。我正在使用chrome进行测试。
function getRule(name, doDelete) { //takes a rule name and boolean
if(document.styleSheets) { //check if there are stylesheets
for(var i = 0; i < document.styleSheets.length; i++) { //loop through style sheets
var currentSheet = document.styleSheets[i];
if(currentSheet.cssRules) { //if the sheet has rules
for(var h = 0; h < currentSheet.cssRules.length; h++) { //loop through css rules
var currentRule = currentSheet.cssRules[h];
if(currentRule.selectorText == name) { //if rule name is equal to the name given
return currentRule; //return the css rule
}
}
}
}
}
}
使用的CSS:
.menuopen {
margin-left: auto;
margin-right: auto;
text-align: center;
font-size: 20px;
width: 960px;
height: 200px;
background-color: 3b7ea8;
box-shadow: inset 0px 2px 5px 3px rgba(0,0,0,0.75);
-webkit-animation-name: dropAnimation;
-webkit-animation-duration: 2s;
}
最佳答案
这些问题之一可能是问题吗?
document.styleSheets[n].cssRules null when page accessed locally
cssRules is null for CSSStyleSheets from other domains
Regression: cssRules null when stylesheets loaded from local disk
发生这些问题的方式取决于样式表的包含方式以及从磁盘或服务器加载页面的方式。