当尝试迭代document.styleSheets时,它不会覆盖每个属性。
控制台记录document.styleSheets
StyleSheetList {0: CSSStyleSheet, 1: CSSStyleSheet, length: 2, item: function}
0: CSSStyleSheet
1: CSSStyleSheet
2: CSSStyleSheet
length: 3
迭代这些属性给了我
0 elementLoader.js:11
1 elementLoader.js:11
length elementLoader.js:11
似乎最后一个样式表不是可枚举的,但我不知道为什么它恰好是我想看的那个。
有什么想法吗?
代码我正在运行:
var styleSheets = document.styleSheets;
console.log(styleSheets);
for (var i in styleSheets)
{
console.log(i);
}
在此示例中,打印document.styleSheets [2]返回null。
解决方案:
转过来,角度正在拉动一些诡计。通过在代码中加载代码而不是脚本标记,我能够迭代所有样式表。多么奇怪的错误。
答案 0 :(得分:0)
您是否尝试这样做:
var styleSheets = document.styleSheets;
console.log(styleSheets);
for (var i in styleSheets)
{
console.log(styleSheets[i]); // Log stylesheet instead of index
}
答案 1 :(得分:0)
让我们分解你到目前为止向我们展示的内容。
<强>第1部分强>
StyleSheetList {0: CSSStyleSheet, 1: CSSStyleSheet, length: 2, item: function}
以上似乎就是你在console.log中看到的内容,然后你展开这个对象来查看内容然后你看到了(正如@Barmar建议的那样)。
0: CSSStyleSheet
1: CSSStyleSheet
2: CSSStyleSheet
length: 3
这表示您在原始日志记录后加载了样式表。
第2部分
您在StyleSheetList
上使用枚举而不是迭代,并发布了复制粘贴
0 elementLoader.js:11
1 elementLoader.js:11
length elementLoader.js:11
需要清理哪个,因为elementLoader.js:11
是复制粘贴的一部分,而不是实际的日志,而且你有。
0
1
length
与之前加载样式表之前首次记录的内容相匹配。
请注意,您看到length
属性名称是可枚举的,您不会看到这是您使用迭代。
答案 2 :(得分:0)
转过来,角度正在拉动一些诡计。通过在代码中加载代码而不是脚本标记,我能够迭代所有