0

配列の形式で保存されたデータであるJSONファイルから値を取得しようとしています。コードは次のとおりです。

JS:

var initDate = new Date("7/9/2013");
var diffDays = 0;
var timeS;

function taqvimSingleDate() {
    // Calculation of Dates difference
    var currDate = new Date();
    diffDays = Math.floor((currDate.getTime() - initDate.getTime()) / (1000 * 60 * 60 * 24));

    $.getJSON('allData.json', function(data) {
        if (data != '' || data != undefined) {
            var addTohtml = '';
            addTohtml += '<td>' +data[diffDays].date_g+ '</td>';
            $('#singleDate').html(addTohtml);

            // Display appropriate time according to location (01 or 02 etc.)
            switch(getCity) {
            case '01': $('#sahari').html(data[diffDays].sahar_1);
                       timeS = data[diffDays].sahar_1;
                break;
            case '02': $('#sahari').html(data[diffDays].sahar_2);
                       timeS = data[diffDays].sahar_2;
                break;
            case '03': $('#sahari').html(data[diffDays].sahar_3);
                       timeS = data[diffDays].sahar_3;
                break;
            case '04': $('#sahari').html(data[diffDays].sahar_4);
                       timeS = data[diffDays].sahar_4;
                break;
            }
        } else {alert("Database is undefined/empty!");}
    });
}
alert(timeS);

要素の結果は#sahari(getCity の値に従って) 正しく表示されますが、問題はtimeS変数が定義されておらず、ここで立ち往生していることです。の値を変数に#sahari正しく渡す方法は?timeS

4

1 に答える 1

1

実際には、値は に保存されtimeSますが、その時点では使用できません。コールバックが正常に完了した後にのみ使用できます。コールバック関数内で目的の変数を処理している関数を呼び出すと、にアクセスできるようになりますtimeS

于 2013-07-15T17:42:56.820 に答える