2

私の Web ページには、日付の表があります (私の日付形式は dd-mm-yyyy です)

<tr>
    <td>05-03-2012</td>
    <td name="expiration">09-07-2012</td>
    <td>08-10-2012</td>
 <tr>

私が欲しいのは、Jqueryを使用して、値が>現在の日付の場合に赤色の有効期限を入れることです。

だから、私は次のようなものを使うつもりだと思う:

<script>
//don't know how to retrieve the expiration date and check if it is after the
//current date 

$('td[name=expiration]').css({"color":"red"});
</script>
4

3 に答える 3

3

セレクターがより効率的になるように、名前の代わりにクラスを使用することをお勧めします。

<tr>
    <td>05-03-2012</td>
    <td class="expiration-date">09-07-2012</td>
    <td>08-10-2012</td>
</tr>

var now = new Date;
$('.expiration-date').text(function (i, v) {
    if (now < new Date(v)) {
        $(this).addClass('unexpired');
    }
});

jsFiddle の例を次に示します: http://jsfiddle.net/qRdNe/

于 2012-07-09T01:35:39.497 に答える
2

これは、日時の解析におけるエラーを考慮していません。

$('td[name=expiration]').each(function(){

    var innerText = $(this).text();
    var date = new Date(innerText);
    var today = new Date();    

    if(date > today){
       //Set css here
    }
    else{
       //Set default here
    }

});
于 2012-07-09T01:28:47.900 に答える
0

私は基本的に、ここで与えられたさまざまなビットから有効な回答をまとめましたが、必要に応じて修正しました。月の日付はゼロから始まります。多分あなたはこれを正しい答えとして受け入れたくないでしょう.参照しやすいようにすべてをここに置いています.

$('.expiration').text(function(i,v){
    var datestr = v.split("-");
    d = new Date(datestr[2],datestr[0]-1,datestr[1],0,0,0,0);
    var now = new Date();        
    if(console)console.log(d);        
    if(d>now )
             {
                $(this).css("color","red");            
             }                

});

http://jsfiddle.net/6zb5W/3/

于 2012-07-09T02:27:30.747 に答える