$ .getScript用于数组的每个元素

时间:2015-04-25 09:18:37

标签: javascript jquery arrays

var json.script是一个数组。每个元素都是脚本的路径,我想通过$.getScript加载。 它应该看起来像这样 - 但我不知道如何循环数组来获取每个数组元素:

$.when(
    $.getScript( json.script ),
    $.getScript( json.script ),
    $.getScript( json.script ),
    $.getScript( json.script ),
    $.Deferred(function( deferred ){
        $( deferred.resolve );
    })
)
.done(function( script, textStatus ) { success(json); })
.fail(function( jqxhr, settings, exception ) { errormessage( exception ); });

2 个答案:

答案 0 :(得分:1)

你可以迭代数组并创建一个可以传递给$.when的承诺数组

//create a array of promises, one for each item in the array
var promises = $.map(json.script, function (script) {
    return $.getScript(script)
});

$.when.apply($, promises).done(function (script, textStatus) {
    success(json);
}).fail(function (jqxhr, settings, exception) {
    errormessage(exception);
});

演示:Fiddle

答案 1 :(得分:1)

您可以使用"..."在阵列的每个元素上调用.map。然后,您可以将$.getScript应用于此结果:

$.when