从API创建表

时间:2014-02-20 20:00:16

标签: javascript html function html-table

我的功能是从api中提取信息,然后将其放入表中。由于某种原因,此功能无效。

这是我的功能:

    function getPayInfo(socCode) {
        var apiurl = "http://api.lmiforall.org.uk/api/v1/ashe/estimatePay?soc=";
        var apicall = apiurl + socCode;
        $.get(apicall, function(data) {
            $("#Pay tbody").html("");
            $.each(data.years, function(i, e) {
                var tablerow = $("<tr></tr>");
                tablerow.append("<td>" + e.year + "</td>");
                tablerow.append("<td>" + e.estpay + "</td>");
                $("#Pay tbody").append(tablerow);
            });
        }); 
    }

这是我把它放进去的表格:

    <div class="well table table-stripped">
        <h4>Pay Information</h4>
        <h5>Pounds per Week</h5>
        <table id="Pay">
            <thead>
                <tr>
                    <th>Year</th>
                    <th>Estimate Pay</th>
                </tr>
            </thead>
            <tbody>
            </tbody>
        </table>
    </div>

我希望它能将一年和数据值返回到表格中。如果您在函数中获取url并将某个4位数值(socCode)(例如5113)添加到结尾,它将在线提供数据,然后将其返回到表体。

1 个答案:

答案 0 :(得分:0)

您是否调试/检查了$.get回调中的数据结构?在我看来,您的访问方法不正确。当我访问您的example url时,我会收到以下数据:

{
  "soc":5113,
  "series":[
     {
       "year":2012,
       "estpay":340
     }
   ]
 }

我认为你希望你的迭代器成为这样:

// there is no data.years
$.each(data.series, function(i, e) {
   ...

这应该使您的e参数的格式为{year: 2012, estpay: 340},这似乎是您想要将其解释为的内容。