2

我正在尝试使用包含在表格中的日历来做一些事情。基本上,每一天都是一个表格单元格。今天的单元格有一个特殊的类,称为... .today(非常原始)。

我想要这样,当用户单击一个日单元格时,它会发生一些事情。为了可用性起见,我想在那些日子里添加一个类,以便鼠标光标变为链接样式。

我一直在努力做到最好,但到目前为止还没有运气。

因此,例如,这是 5 月的前三周,今天的班级名为:

<table class="calendar">
    <tbody>
        <tr class="week0">
            <td class="day">30</td>
            <td class="day">1</td>
            <td class="day">2</td>
            <td class="day">3</td>
            <td class="day">4</td>
            <td class="day">5</td>
            <td class="day">6</td>                                                                  
        </tr>
        <tr class="week1">
            <td class="day">7</td>
            <td class="day">8</td>
            <td class="day">9</td>
            <td class="day">10</td>
            <td class="day">11</td>
            <td class="day">12</td>
            <td class="day">13</td>                                                                 
        </tr>
        <tr class="week2">
            <td class="day">14</td>
            <td class="day">15</td>
            <td class="day">16</td>
            <td class="day">17</td>
            <td class="day">18</td>
            <td class="day today">19</td>
            <td class="day">20</td>                                                                 
        </tr>               
    </tbody>
</table>

我想选择从 30(天)到 19 的 tds。

采取的方法:

  • 选择所有日期,然后尝试查找今天单元格的索引。失败,因为 jQuery 选择不是数组而是对象。
  • 一旦达到使用$.each和使用标志。today这行得通,但听起来对性能真的很糟糕[?]

有没有我想念的方法?

4

1 回答 1

1

获取.today所有td元素中的索引并根据该索引进行选择:

// Get the index of td.today among all td's
var tIndex = $(".today").index("td") + 1;

// Select all td's below (and including) .today
$("td:lt(" + tIndex + ")").css("background-color", "red");​

演示:http: //jsfiddle.net/UNXve/

于 2012-05-18T23:20:35.537 回答