0

我有两件不同的事情要做。我需要根据以下条件更改 td 的 CSS:

  1. 打印日期是否早于今天,并且
  2. 这个旁边的td是否为空

这是我的表:

<table><tr>
<td>October 27, 2012</td>
<td id="assigned">Yes</td>
</tr>
<tr>
<td>November 14, 2012</td>
<td id="assigned"></td>
</tr>
</table>

我知道我可以<td>使用 jQuery 检查是否为空。我也知道我可以解析屏幕上的日期。但我似乎无法让 jQuery 遍历表中的每一行。这是我拥有的代码:

$(document).ready(function () {
$('#myTable tr').each(function(i){
var today = new Date();
var d = Date.parse($("#dueDate").text());
if(d < today && $("td#assigned").text()==""){
$("#dueDate").css("background-color","red");
}});
});

我是不是摇摆不定?我看着这个,我想,它看起来应该可以工作,但事实并非如此。任何帮助,将不胜感激。谢谢!

4

1 回答 1

1

看起来问题似乎是由于您的 HTML 中的重复ID引起的。HTML 页面中的 ID 应该是唯一的。

相反,您可以使用.eq()and$(this)来搜索 td

$(document).ready(function() {
    $('#myTable tr').each(function(i) {
        var $this = $(this);
        var $dueDate = $this.find('td:eq(0)');
        var $assigned = $this.find('td:eq(1)');
        var today = new Date();
        var d = Date.parse( $dueDate.text());
        if (d < today && $assigned.text() == "") {
            $duedate.css("background-color", "red");
        }
    });
});​

小提琴

于 2012-11-15T04:35:30.503 回答