我有一系列列:
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
方法?
答案 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]
构建您的表格