0

ユーザー情報を含むテーブルがjspあり、ユーザーの誕生日を format で表す列がありますyyyy-mm-dd。それらの生年月日をユーザーの実際の年齢に置き換えたいです。だから私はそれのための単純な JS 関数 getAge を持っています:

    function getAge(dateString) {
        var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}

そのようにページを初期化した後に実行しようとしました:

$().ready(function({
    $(".age").html(getAge($(this).html()));
}));

ここ.ageで、「年齢」列のクラスです。それが私が期待した方法です:

$(".age")- class="age" のセルを検索

$(".age").html(getAge($(this).html()));- 見つかったセルの html を getAge() 関数から返された値に置き換えます。ここで、getAge の引数はそのセルの現在の値です。しかし、何も表示されません=(

テストに次のような smthg を使用する場合:

$(".age").html(getAge("1960-08-15"));- 正しく機能し、すべての行の誕生日を 1960-08-15 から計算された年齢に置き換えます =)

$(this)多分私は私の文脈で何が返されるのか理解していませんか? セレクター(セル)で呼び出したばかりの現在の要素を返す必要があると確信していました

ヒントを教えていただけますか?

ありがとう

4

1 に答える 1

1

各年齢をループし、jquery .each を使用して HTML を設定する必要があります。

$(".age").each(function(){....});

フィドル: http://jsfiddle.net/Yyene/

于 2013-07-25T13:26:33.503 に答える