2

私の人生ではこれを理解することはできません。一連の7つのタブ(曜日に基づく)、.past、.today、および.futureに3つのクラスを与える必要があります。

.getDay()を使用して.todayが正常に機能していますが、.todayの前にあるすべてのliを.pastに割り当て、.todayの後にあるすべてのliを.futureに割り当てるのに問題があります。

HTML:

<ul class="days-of-the-week tabs clearfix">
  <li class="sunday"><span><a href="#">Sunday</a></span></li>
  <li class="monday"><span><a href="#">Monday</a></span></li>
  <li class="tuesday"><span><a href="#">Tuesday</a></span></li>
  <li class="wednesday"><span><a href="#">Wednesday</a></span></li>
  <li class="thursday"><span><a href="#">Thursday</a></span></li>
  <li class="friday"><span><a href="#">Friday</a></span></li>
  <li class="saturday"><span><a href="#">Saturday</a></span></li>
</ul>

jQuery:

// Add class .today to the correct day-of-week tab
$('ul.days-of-the-week li:eq(' + new Date().getDay() + ')').addClass('today');

前もって感謝します!

4

3 に答える 3

4

を使用prevAll()して、現在の要素の以前のすべての兄弟、およびnextAll()後続のすべての兄弟を取得できます。

ドキュメントprevAllhttp ://api.jquery.com/prevAll/

ドキュメントnextAllhttp ://api.jquery.com/nextAll/

これらを使用すると簡単です。JSFiddle: http: //jsfiddle.net/qYt2p/

var today = $('ul.days-of-the-week li:eq(' + new Date().getDay() + ')').addClass('today');
today.prevAll().addClass("past");
today.nextAll().addClass("future");​
于 2012-04-26T23:38:40.567 に答える
1

私はあなたがnetxAllとprevAllを探していると思います:

var today = $('ul.days-of-the-week li:eq(' + new Date().getDay() + ')');
today.prevAll().addClass('past');
today.addClass('today');
today.nextAll().addClass('future');
于 2012-04-26T23:40:57.503 に答える
0
$('ul.days-of-the-week li').each(function() {
    var c = new Date().getDay() <= $(this).index() ? new Date().getDay() == $(this).index() ? 'today' : 'future' : 'past';
    $(this).addClass(c);
});
于 2012-04-26T23:50:32.080 に答える