4

我正在尝试使用 jQuery 根据同一个表中另一个 td 的文本向 td添加一个倒数计时器(使用这个http://keith-wood.name/countdown.html )。

例如,我的表如下所示,如果状态 td 包含文本“已接收”,我想将计时器添加到 time_remaining td。

<table>
    <tr>
        <td class="status">Completed</td>
       <td class="time_received"></td>
       <td class="time_remaining"></td>
    </tr>
    <tr>
        <td class="status">Received</td>
        <td class="time_received"></td>
        <td class="time_remaining"></td>
    </tr>        
</table>

我的 jQuery 目前看起来像下面这样,但我正在使用$(this).next()它只会将计时器添加到 time_received td,但我需要将它添加到 time_remaining td,我可以使用什么来代替.next()?任何帮助,将不胜感激。

 var newCount = new Date(); 
 newCount.setMinutes(newCount.getMinutes() + 30);
 $('td.status:contains(Received)').each(function() {
   $(this).next().countdown({
        until: newCount, 
        format: 'M',
        layout: "{mn} min"
        });
​});​
4

3 回答 3

2

.next()有一个带选择器的重载,因此您可以使用:

var newCount = new Date(); 
newCount.setMinutes(newCount.getMinutes() + 30);
$('td.status:contains(Received)').each(function() {
    $(this).next(".time_remaining").countdown({
        until: newCount, 
        format: 'M',
        layout: "{mn} min"
    });
});

见这里:JQuery .next()

于 2012-11-21T20:57:36.837 回答
2

您可以将选择器传递给 next 并使用索引来指定哪个 - 在您的情况下,只有一个具有 time_remaining 类的兄弟,所以它是相同的

.next(".time_remaining")[0]

或者,如果你总是想要第二个兄弟姐妹,你可以这样做

.nextAll()[1]
于 2012-11-21T20:57:48.470 回答
0

你仍然可以使用 .next(),只需传入你想要的 td 的选择器。

$(this).next('.time_remaining').countdown({});

查看文档以获取更多信息: http ://api.jquery.com/next/

于 2012-11-21T20:57:56.713 回答