【发布时间】:2016-05-16 11:26:05
【问题描述】:
我正在尝试创建一个简单的报告,我从 ajax 请求中获取条目,并且我想简单地按星期几对我的条目进行分组。例如,我想出来一些简单的东西:
----------------------------------
Monday - May 2nd - 2016
-----------------------------------
Entry 1
Description
Date: 2016-05-02 09:45
-----------------------------------
Entry 2
Description
Date: 2016-05-02 10:55
-----------------------------------
-----------------------------------
Tuesday - May 3rd - 2016
-----------------------------------
No entries to display ...
-----------------------------------
-----------------------------------
Wednesday - May 4th - 2016
-----------------------------------
Entry 3
Description
Date: 2016-05-04 09:45
-----------------------------------
Entry 4
Description
Date: 2016-05-04 10:55
----------------------------------
我目前卡在代码的一部分上,如果当天没有条目,则返回:
$('#dataTable').append('<tr><td colspan="2">No entries to display...</td></tr>');
有没有办法简单地说如果星期几输入长度等于0然后返回上面的?
这就是我目前所拥有的,因为我尝试了很多东西,所以现在有点乱。
https://jsfiddle.net/vLdn68ko/20/
var items_by_date = {}; // declare an object that will have date indexes
$.ajax({url:"/SomeUrlBeginninWithSlash",
dataType: 'json',
cache: false,
success: function (data) {
data.d.results.map(function(item){
var minDate = moment("2016-05-02");
var maxDate = moment("2016-05-04");
var duration = moment(minDate).diff(moment(maxDate), 'days');
while(duration > 0){
item_date = moment(minDate).format('dddd D MMMM YYYY');
// if the date index does not exist we need to declare it
if(!items_by_date[item_date]) items_by_date[item_date] = [item];
// else we can just push the item on that array
else items_by_date[item_date].push(item);
var minDate = moment(minDate).subtract(1, 'day');
var duration_test = duration_test-1;
}
console.log(items_by_date);
})
drawTable(items_by_date);
}
});
function drawTable(data){
$('#dataTable').html('');
Object.keys(data).sort(function(a,b){return new Date(a)-new Date(b)}).forEach(function(d){
$('#dataTable').append('<tr><td colspan="2" style="font-weight: bold;">'+d+'</td></tr>');
data[d].map(function(item){
if(item.ID == ""){
$('#dataTable').append('<tr><td colspan="2">No entries to display...</td></tr>');
}else{
$('#dataTable').append('<tr><td>'+item.ID+'</td><td>'+item.Description+'</td></tr>');
}
})
})
}
这是我的 ajax 请求示例
responseText: {
d: {
results: [{
ID: "1",
Description: "Test1",
Date: "2016-05-02 09:45"
}, {
ID: "2",
Description: "Test2",
Date: "2016-05-02 10:45"
}, {
ID: "3",
Description: "Test3",
Date: "2016-05-04 11:45"
}, {
ID: "4",
Description: "Test4",
Date: "2016-05-04 11:45",
}]
}
}
有人知道我错过了什么吗?
【问题讨论】:
标签: javascript jquery ajax momentjs