传递给函数时Javascript对象未定义

时间:2017-02-18 10:29:18

标签: javascript jquery javascript-objects

我有两个一个接一个调用的函数。两者都试图检查数组对象的长度。 (obj) 所以我的html文件的片段:

   $.ajax({
       type: 'POST',
       url: 'http://localhost:30232/Request',
       data: JSON.stringify(myjson),
       contentType: "application/json",
       success: function (responseData, textStatus, jqXHR) {
           var x = responseData;
           clearResultsTable();
           $("#Results").show();
           createResultsTable(x);
           createGraph(x);
           $("#Results").trigger("click");
       },
       error: function (responseData, textStatus, errorThrown) {
           var x = responseData;
           $("#sres").text(x.Amount);
       }
   });

但是在控制台中我得到了这个: Undefined Object

为什么我可以在第一个函数调用中检查obj的长度。但不是第二个?如果未定义调试器如何在第二个函数中看到obj中的所有元素?

使用Javascript:

function createResultsTable(obj) {
    var counter = 0
    var arrlen = obj.length;
    var sym = $("#inSymbol").val();

    while (counter < arrlen) {
        $("#ResultsTable").append("<tr class='dataRow'><td>" + obj[counter].Month + "</td><td>" + sym + obj[counter].Capital + "</td><td>" + sym + obj[counter].Interest + "</td><td>" + sym + obj[counter].Total + "</td><td>" + sym + obj[counter].OverpaymentAmount + "</td></tr>")
        counter++
    }
}

function createGraph(obj) {
    var data = new google.visualization.DataTable();
    var counter = 0

    data.addColumn('string', 'Month');
    data.addColumn('number', 'Capital');
    data.addColumn('number', 'Interest');

    while (counter < obj.length) {
        data.addRows([
            [obj[counter].Month, obj[counter].Capital, obj[counter].Interest]
        ]);
        counter++
    }

    var options = {
        title: 'Interest/Capital by Month',
        legend: {
            position: 'bottom'
        }
    };

    var chart = new google.visualization.LineChart(document.getElementById('chartArea'));
    chart.draw(data, options);
}

1 个答案:

答案 0 :(得分:0)

发现这与谷歌图表加载器的回调功能有关。这是在没有参数的情况下调用函数。