カレンダーを考えると、ビューのように見えます。各 dayHolder には data-date プロパティがあります。次に、datepicker カレンダーから fromDate と untilDate を 1 つ選択するとします。次に、fromDate と untilDate の間の日数を計算します。後で、自分のカレンダーで fromDate を見つけて、これにステータスを書き込みます。次に、次の日を見つけて、その日付にステータスを書き込み、到達するまで続けます。私の untilDate -日付。
これを行う最善の方法は何ですか?data-date を使用して各 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">