【发布时间】:2014-12-14 08:21:46
【问题描述】:
我正在寻找一种无需查看特定元素即可使用 js 获取页面 css 的方法,然后更改 CSS 规则而不是不同元素的 CSS。
例如,假设我想将所有具有蓝色背景的元素的背景颜色更改为红色,然后可能会创建一些新元素。我想找到所有带有蓝色 bg 的 css 类并将它们更改为红色。 document.styleSheets 似乎不太好用:
对于这个页面,我在控制台中尝试了这个。它不记录任何内容。
var logAttr = function(classes){
if(classes !== null){
for(var i = 0; i < classes.length; i++) {
for(var attr in classes[i].style){
console.log(attr);
}
}
}
};
for(var sheets_idx = 0; sheets_idx < document.styleSheets.length; sheets_idx++){
logAttr(document.styleSheets[sheets_idx].rules);
logAttr(document.styleSheets[sheets_idx].cssRules);
}
document.styleSheets[0].rules 和 document.styleSheets[0].document.styleSheets 为空...
【问题讨论】:
-
为什么
document.styleSheets似乎没有那么好用?你尝试了什么?
标签: javascript css