質問する
537 次
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 を使用して ops の数を減らすことができます
[].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 に答える