从json数据动态检索列

时间:2015-02-08 15:58:39

标签: jquery

我有一系列列:

var columns=["title","length","status"]; 

这是我的代码:

    function executeSearch(query)
    {                       
        var url = ajaxPath+ "?s=search&r="+resource+"&q="+query;
        $.getJSON(url, function(data){          
            var html = '<table class="table table-hover">';
            html += '<thead><tr>';
            $(columns).each(function(index,value){
                html +='<td>'+value+'</td>';
            })
            html += '</tr></thead>';
            html += '<tbody>';          
            $(data).each(function(i,item){
                html += '<tr>';
                $(item).each(function(e,itm){
                    for(var propt in itm){
                        if (columns.hasOwnProperty(propt)) {
                            html += '<td>'+itm[propt]+'</td>';
                        }
                    }                   
                })
                html += '</tr>';
            });
            html += '</tbody>';
            html += '</table>';
            $("#datatable").html(html);
        });
    }   

我试图根据列获取数据。我使用columns.hasOwnProperty

它似乎无法正常工作。

是否有处理此问题的jquery方法?

1 个答案:

答案 0 :(得分:0)

您的示例中的

columns是一个数组,您应该使用indexOf来确定列是否在数组中。

// check if the propt is in the array (-1 means not found)
if (coulmns.indexOf(propt) !== -1) {

但是,在您查看的情况下,您应该迭代columns数组而不是items属性。您正在构建一个表,并且您希望列按您指定的顺序...

而不是$(item).each()您应该$.each(columns, function(index, propt) {使用item[propt]构建您的表格