【问题标题】:Getting data from JSON file value is 'undefined'从 JSON 文件值获取数据是“未定义”
【发布时间】:2013-07-16 03:57:10
【问题描述】:

我正在尝试从 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 变量是undefined,我被困在这里。如何将#sahari 的值正确传递给timeS 变量?

【问题讨论】:

标签: javascript json global-variables


【解决方案1】:

其实你的值是存储在timeS中的,但是你不能在那个时间点使用它。只有在您的回调成功完成后才可用。在回调函数中调用一个正在处理所需变量的函数,您将能够访问timeS

【讨论】:

  • 感谢简单而简短的提示;)我现在可以进一步处理所需的变量。
猜你喜欢
  • 2016-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
  • 2018-09-15
  • 2021-09-24
  • 1970-01-01
相关资源
最近更新 更多