我正在尝试使用以下 each() 函数扫描 DOM 中的所有样式表
$("link").each(function(){
$.get($(this).attr('href'), function() {
// Some Code...
});
});
此代码工作正常,但我想回调以知道所有样式表已被扫描并在此后运行另一个函数。有可能做到这一点吗?
创建对象数组$.Deferred
:
var jqXHRs = $("link").map(function() {
return $.get($(this).attr('href'), function () {
// Some code...
});
});
$.when.apply(null, jqXHRs.get()).done(
function() {
// All done
}
);
document.styleSheets
当您可以通过API询问它们时,为什么还要通过 AJAX 再次加载每个样式表(它们已经在您的页面中加载过一次) ?
for (var i in document.styleSheets) {
/* code here involving cssText or whatever */
}
由于这种方法将构成同步操作,因此您不需要回调 - 您只需将“回调”代码放在循环之后。