从json对象动态构造一个有序的html表

时间:2018-06-01 19:55:06

标签: javascript jquery html

ajax响应正在返回json对象,我想从中构造一个表。 json包含数组中的列标题和另一个字典数组中的实际数据。我希望根据标题数组对表列进行排序:

{
    "columns": ["id", "category"],
    "data":[
      {"category": "fruit","id": 1},
      {"category": "diary","id": 2}
    ]
}



  $(document).ready(function() {
    $("#submit").click(function(event) {
      $.ajax({
        data: {
          user: $('#user').val(),
        },
        type: 'POST',
        dataType: "json",
        url: '/process'
       })
        .done(function(response) {
         if (response.error) {
          alert('Error!');
        }
        else {
          var html = '<table class="table table-bordered"><thead><tr>';
          jQuery.each(response.columns, function(index, value) {
              html += "<th>" + value + "</th>"
          })
          html += "</tr></thead><tbody><tr>"
          jQuery.each(response.data, function(index, value) {
               jQuery.each(response.columns, function(idx, col) {
                    html+="<td>" + value[col] + "</td>"
               })
          })
          html+="</tr></tbody></table>"
          $(resulttable).append(html);
        }
       });
      event.preventDefault();
     });
    });

我得到这样一张桌子:

id   category
1    fruit      2     diary

instead of 

id   category
1    fruit      
2    diary

1 个答案:

答案 0 :(得分:2)

您需要为每个数据行创建一个新的表行。

moveToThread