根据打印时间是否早于今天并且其他td的值为空,更改td的css

时间:2012-11-15 04:30:03

标签: jquery parsing date

我正在尝试做两件不同的事情。我需要根据以下内容更改td的CSS:

  1. 打印日期是否早于今天和
  2. 旁边的td是否为空
  3. 这是我的表格:

    <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>
    

    我知道我可以使用jQuery检查<td>是否为空。我也知道我可以解析屏幕上的日期。但我似乎无法让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");
    }});
    });
    

    我是不是在摇杆?我看这个,我认为它看起来应该有效,但事实并非如此。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

由于HTML中存在重复的 ID

似乎问题似乎已经出现了。 HTML页面中的ID应该是唯一的..

相反,您可以使用.eq()$(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");
        }
    });
});​

<强> Fiddle