如果您认为日历看起来像视图。每个 dayHolder 都有一个 data-date 属性。如果我然后从日期选择器日历中选择一个 fromDate 和一个 untilDate 。然后我计算从 fromDate 到 untilDate 之间的天数,后来我在自己的日历中找到我的 fromDate 并在这个日历上写一个状态,接下来我找到第二天并在那个日期上写一个状态,并继续直到达到我的 untilDate 日期。
这样做的最佳方法是什么?使用数据日期查找每个 dayDiv 感觉像是一件繁重的事情。
所以我现在已经这样做了:
var fromDate = new Date(calenderStatus.fromDate.substring(0, 10));
var untilDate = new Date(calenderStatus.untilDate.substring(0, 10));
var days = 0;
if (fromDate <= untilDate) {
var smallDate = new Date(fromDate.getFullYear(), fromDate.getMonth(), fromDate.getDate(), 0, 0, 0, 0);
var maxDays = new Date(untilDate.getFullYear(), untilDate.getMonth(), untilDate.getDate(), 0, 0, 0, 0);
days = (maxDays - smallDate) / (1000 * 60 * 60 * 24);
}
if (days > 0) {
var dayHolder = $(".dayHolder[data-date='"+ calenderStatus.fromDate +"']");
for (var i = 0; i < days; i++) {
//do something with dayHolder
dayHolder = dayHolder.next('.dayHolder');
}
HTML:
<div class="dayHolder ui-grid-a" data-changeable="true" data-date="2013-06-24">
<div class="dayHolder ui-grid-a" data-changeable="true" data-date="2013-06-25">
<div class="dayHolder ui-grid-a" data-changeable="true" data-date="2013-06-26">