如果您认为日历看起来像一个视图。每天持有者都有一个数据日期属性。 如果我从dateDicker日历中选择一个fromDate和one untilDate。然后我计算fromDate和untilDate之间的天数,后来我在我自己的日历中找到了我的fromDate并写了一个状态,然后我找到第二天并在那个上写下状态,并继续直到达到我的直到日期 - 日期。
这样做的最佳方式是什么? 感觉就像一个dom-heavy的东西,每天都能找到数据日期。
所以我现在就这样做了:
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">
答案 0 :(得分:0)
我评论说我得到了一个问题。 这是评论:
因为:lt()是一个jQuery扩展而不是CSS规范的一部分,使用:lt()的查询无法利用本机DOM querySelectorAll()方法提供的性能提升。为了在现代浏览器中获得更好的性能,请使用$(“your-pure-css-selector”)。切片(0,索引)代替。
如果我现在获得了所有的.dayHolder并想使用切片方法。如何找到具有正确日期日期的特定dayHolder的索引。 这是一个
var specificDiv = $(".dayHolder[data-date='"+ calenderStatus.fromDate +"']");
但那个人的指数在$('。dayHolder')中是什么?
像这样:
$('.dayHolder').slice(specificDiv, 5)