选择从start到one的所有表行

时间:2012-05-18 23:02:15

标签: jquery

我正在尝试使用附在表格中的日历来做某事。基本上,每天都是一个桌子。今天的单元格有一个特殊的类叫做.today(很原始)。

我想要的是,当用户点击日间单元格时会发生一些事情。为了便于使用,我想在那些日子里添加一个类,以便鼠标光标变为链接样式。

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

因此,例如,今天是五月的前三个星期,今天的名为:

<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后使用标记。这很有效,但听起来真的很糟糕[?]

有没有办法让我失踪?

1 个答案:

答案 0 :(得分: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/