0
var testFile = $("#selection").val(),
    testData = getTestData(testFile); 

// not working during the first time I run the function, empty
alert(testData); 

function getTestData(testF) {
    $.getJSON("test.php", {
        fileTest: testF
    }, function (data) {
        $.each(data, function (index, value) {
            if (value != "") {} else {
                testArray[index] = value;
            }
        });
    });

    // working I see the values
    alert(testArray); 

    // not working the first time running this function
    return testArray; 
}​
4

2 回答 2

0

AJAX 是异步的..所以你的函数必须在值被存储到它之前已经返回..

最好将其存储在更高范围的变量中,并在请求完成后使用它..

于 2012-11-07T23:36:28.013 回答
0

您将需要处理返回的数组,并在getJSON().

你得到空值的原因是你的返回 testArray,很可能在getJSON调用和回调函数完成执行之前执行。

这是因为该方法是异步执行的。您将需要对回调函数中的数据执行任何操作。

于 2012-11-07T23:38:19.970 回答