-1
4

1 回答 1

2
var test = "http:​/​/​www.formstack.com/​forms/​css/​3/​default.css";
for (var i = 0; i < document.styleSheets.length; i++) {
    var sheet = document.styleSheets.item(i);
    if (sheet.href.indexOf(test) !== -1) sheet.disabled = true;
}

这将起作用,但是它效率低下(仍然),因为它在找到匹配后会继续检查 CSSStyleSheetList 中的其他 CSSStyleSheets。

如果您不关心浏览器支持,您可以使用 Array.prototype.some 来减少操作数

[].some.call(document.styleSheets, function(sheet) {
    return sheet.disabled = sheet.href.indexOf(test) !== -1;
});

请参阅:在 MDN 上排列一些方法

编辑:
对于性能和传统支持的混合,以下解决方案将起作用:

var test = "http:​/​/​www.formstack.com/​forms/​css/​3/​default.css";
for (var i = 0; i < document.styleSheets.length; i++) {
    var sheet = document.styleSheets.item(i);
    if (sheet.href.indexOf(test) !== -1) {
        sheet.disabled = true;
        break;
    }
}
于 2013-04-25T21:01:41.250 回答