0

私がやろうとしていることは2つあります。次の条件に応じて、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()$(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 に答える