[英]Highlight most recent date from a table row
我有下表,并且我试图找到一种方法来向具有最新日期/时间的单元格(class =“ dateRow”)添加“突出显示”类。 在这种情况下,它将是第四位,日期为“ 2013-05-30”。
我尝试了各种选择,但似乎无法使其正常工作。 有人可以给我指路,因为我一直在努力解决这个问题,而且似乎还不太能使它正常工作。
<table>
<tr class="topRow">
<td>Yes</td>
<td class="dateRow">2013-05-23 13:53:20</td>
<td class="dateRow">2013-05-21 13:53:21</td>
<td class="dateRow">2013-05-29 13:53:22</td>
<td class="dateRow">2013-05-30 13:53:23</td>
<td class="dateRow">2013-05-29 13:53:24</td>
<td class="dateRow">2013-05-28 13:53:19</td>
<td>Some Text</td>
<td class="dateRow">2013-05-27 13:53:18</td>
</tr>
</table>
我尝试适应的最新JS如下:
<script>
$(window).load(function()
{
$('.thisRow').each(function() {
var $tds = $(this).children('td'),
max = null,
maxIndex = null;
$tds.each(function() {
var value = +$(this).text().substr(1);
if(isNaN(value)) {
if(!max || value > max) {
max = value;
maxIndex = $(this).index();
}
}
});
if(maxIndex !== null) {
$tds.eq(maxIndex).addClass('highlight');
}
});
}
);
</script>
我认为需要修改的是NaN,因为这至少突出显示了一个单元格,尽管最后一个。
问题不在于您的代码,而是日期格式 。 请更改为:
<tr class="topRow">
<td>Yes</td>
<td class="dateRow">2013/05/23 13:53:20</td>
<td class="dateRow">2013/05/21 13:53:21</td>
<td class="dateRow">2013/05/29 13:53:22</td>
...
上面的格式几乎适用于所有浏览器。 有关更多信息,请参考以下链接:
您没有将这个问题标记为jQuery,但是显示了一些jQuery代码,因此我假设jQuery是可以接受的。
遍历所有日期时,请跟踪最大值。 诀窍是将您的日期格式转换为可接受的javascript日期格式:
$(function () {
//keep track of max values
var maxCell = undefined;
var maxVal = undefined;
$('.dateRow').each(function () {
var that = $(this);
var dt = new Date(that.text().replace(' ', 'T')); //convert to js date
if (!maxCell || dt > maxVal) {
//update max values
maxCell = that;
maxVal = dt;
}
});
maxCell.addClass('highlight'); //highlight cell with max value
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.