根据日期修改元素背景颜色

时间:2012-07-31 14:47:50

标签: jquery

我列出了这样的日子,

<ul>
    <li class="dark"><a rel="25" class="0725" style="color: rgb(255, 255, 255);">25</a></li>
    <li class="dark"><a rel="26" class="0726" style="color: rgb(255, 255, 255);">26</a></li>
    <li class="dark"><a rel="27" class="0727" style="color: rgb(255, 255, 255);">27</a></li>
    <li class="dark"><a rel="28" class="0728" style="color: rgb(255, 255, 255);">28</a></li>
    <li class="dark"><a rel="29" class="0729" style="color: rgb(255, 255, 255);">29</a></li>
    <li class="dark"><a rel="30" class="0730" style="color: rgb(255, 255, 255);">30</a></li>
    <li class="dark first"><a rel="31" class="0731" style="color: rgb(255, 255, 255);">31</a></li>
    <li class="dark"><a rel="1" class="0801" style="color: rgb(255, 255, 255);">1</a></li>
    <li class="dark"><a rel="2" class="0802" style="color: rgb(255, 255, 255);">2</a></li>
    <li class="dark"><a rel="3" class="0803" style="color: rgb(255, 255, 255);">3</a></li>
    <li class="dark"><a rel="4" class="0804" style="color: rgb(255, 255, 255);">4</a></li>
    <li class="dark"><a rel="5" class="0805" style="color: rgb(255, 255, 255);">5</a></li>
    <li class="dark"><a rel="6" class="0806" style="color: rgb(255, 255, 255);">6</a></li>
    <li class="dark"><a rel="7" class="0807" style="color: rgb(255, 255, 255);">7</a></li>
    <li class="dark"><a rel="8" class="0808" style="color: rgb(255, 255, 255);">8</a></li>
    <li class="dark"><a rel="9" class="0809" style="color: rgb(255, 255, 255);">9</a></li>
    <li class="dark"><a rel="10" class="0810" style="color: rgb(255, 255, 255);">10</a></li>
    <li class="dark"><a rel="11" class="0811" style="color: rgb(255, 255, 255);">11</a></li>
    <li class="dark"><a rel="12" class="0812" style="color: rgb(255, 255, 255);">12</a></li>
</ul>

我希望改变当天的颜色和前几天的颜色。 该课程为月日格式。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

// get current date
var today = new Date();
// get days using getDate() and pad to 2 digits
var tdd = zeroPad(today.getDate(),2);
// get months using getMonth() and pad to 2 digits
var tmm = zeroPad(today.getMonth()+1,2);

// get current date
var yesterday = new Date();
// set date to date -1 ie yesterday
yesterday.setDate(today.getDate() - 1);
// get days using getDate() and pad to 2 digits
var ydd = zeroPad(yesterday.getDate(),2);
// get months using getMonth() and pad to 2 digits
var ymm = zeroPad(yesterday.getMonth()+1,2);

// concatenate strings to form class and use css() to set appropriate color
$('.'+tmm + tdd).css('background-color','red');
$('.'+ymm + ydd).css('background-color','blue');

应将今天的颜色设置为红色,将昨天的颜色设置为蓝色。使用Date object

中的.css()SO answer herezeroPad()函数

Working example here

答案 1 :(得分:0)

用户JS:

var d = new Date();
alert(d.getDate());
alert(d.getMonth());

d.getDate()将显示1到31之间的数字。 g.getMonth()返回月份(从0-11开始)

相反,使用0731作为你的类,把0731作为ID, 并使用ByID getter更新样式类。

http://www.w3schools.com/jsref/jsref_obj_date.asp

您现在可以通过这些信息帮助自己。