- ベストアンサー
JavaScriptでHTML内に記入されている日付を判定して画像を表
- JavaScriptを使用してHTML内に記入されている日付を判定し、条件に応じて画像を表示させることは可能でしょうか?
- 例えば、テーブルの行の中に記入された日付が今日の日付から7日以内であれば、該当行の特定の要素に「NEW!」という画像を表示する方法はありますか?
- このような処理を実現するためには、JavaScriptの日付操作機能を使用してテーブル内の日付を取得し、日付の比較を行い条件に一致するかどうかを確認する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
各tr要素について、2つめのtd要素の日付を正規表現で取得してDateオブジェクトに変換し、それが指定した日数の範囲内であれば1つめのtd要素に画像のHTMLを挿入するという方法はどうでしょう。 以下、table要素にid属性として"sample"を指定しておいた場合(「<table id="sample" ...>」のように)のサンプルコードです。 (function(){ var new_icon = '<img src="new.gif" alt="new">'; // 挿入するHTML var newdata = 7; // 画像を表示する日数 var rows = document.getElementById("sample").getElementsByTagName("tr"); var cells; var matched; var rows_count, i; var base = new Date(); base = new Date(base.getFullYear(), base.getMonth(), base.getDate()) - newdata * 86400000; for (rows_count = rows.length, i = 0; i < rows_count; i++) { cells = rows[i].getElementsByTagName("td"); matched = cells[1].innerHTML.match(/(\d+)\/(\d+)\/(\d+)/); if (matched && new Date(Number(matched[1]), Number(matched[2]) - 1, Number(matched[3])) >= base) { cells[0].innerHTML = new_icon; } } })(); script要素に直接記述する場合も外部jsファイルで呼び出す場合も、script要素はtable要素よりも後に記述する必要があります。
お礼
大変参考になりました。 ありがとうございます