javascript - javascript 中的作用域(为什么 $.post() 方法数组的作用域是本地的?)

标签 javascript jquery

externalCSSContents = [];

function getExternalCSSContents(){
        href = document.styleSheets[0].href;
        $.post(href, function(result){
            externalCSSContents.push(result);
            alert(externalCSSContents.length); // 1
        });
}

getExternalCSSContents();
alert(externalCSSContents.length); // 0

有人可以向我解释一下为什么在 $.post() 方法范围内数组 externalCSSContents 是本地的吗?

最佳答案

这是因为 ajax 请求尚未执行完毕,您正在警告数组的内容。

你可以这样做。

function getExternalCSSContents(){
    href = document.styleSheets[0].href;
    return  $.post(href, function(result){ externalCSSContents.push(result); });
}

$.when( getExternalCSSContents() ).then(function(){ 
        alert(externalCSSContents.length);
}); 

关于javascript - javascript 中的作用域(为什么 $.post() 方法数组的作用域是本地的?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141493/

相关文章:

javascript json 不显示所有条目

javascript - 搜索 childNodes 返回未定义

javascript - 如何在两个循环内访问数组中的对象?

javascript - jQuery .keyup() 无限触发

jquery - 在一行中从 td 创建两列表

jquery 使用数组值对元素进行排序

javascript - Javascript 中的行索引

jquery - Bootstrap 表单验证

jquery - 自定义滚动条样式,隐藏条除非滚动

jquery - 如何在 bootstrap daterangepicker 中扩展自定义日期范围选择