jQuery接下来的5个兄弟姐妹

时间:2013-06-24 07:17:35

标签: javascript jquery

如果您认为日历看起来像一个视图。每天持有者都有一个数据日期属性。 如果我从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">

1 个答案:

答案 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)