【发布时间】:2011-01-18 09:56:57
【问题描述】:
我编写了这段代码,它遍历所有全局样式表规则并将它们存储在一个数组/对象中。我稍后会使用这个类似字典的对象来更改全局规则,而不是在单个元素上设置样式。
以下代码在 IE8 中中断,但在 Firefox3.7 和 Chrome4 中运行良好。
var allRules;
$(function() {
var fileRules;
allRules = [];
$.each(document.styleSheets, function() {
// get rules for any browser (IE uses rules array)
fileRules = this.cssRules || this.rules;
$.each(fileRules, function() {
allRules[this.selectorText] = this;
});
});
});
我收到Invalid procedure call or argument 错误。当我尝试调试它时,这段代码成功地迭代了两个带有规则的 CSS 样式表文件,但是当第二个迭代完成时,它失败了。
我似乎在这段代码中找不到错误。
【问题讨论】:
-
由于您没有将
allRules用作数组,因此您应该将其声明为对象:allRules = {}; -
@Tim Down:也试过了,但也没用。
-
对不起,我应该说它不会解决任何问题。这只是一个旁白。
标签: javascript internet-explorer-8 each jquery-1.3.2