0

現在、属性内に日付を含むクラスがいくつかあります。

<div id="container">
  <div class="date" date="19/11/2013"></div>
  <div class="date" date="06/11/2013"></div>
</div>
<div id="result"></div>

私がやりたいことは、最新の日付を見つけてページに表示することです。これまでのところ、属性の情報を見つけて、それが配列に存在しないことを確認し、配列にプッシュしました。ここからの最善のアプローチについては完全にはわかりませんが、理想的には最新の日付を見つけて、それを結果コンテナーに追加したいと考えています。

$('.date').each(function () {
    var dateArray = [];
    var date = $(this).attr('date');
    if ($.inArray(date, dateArray) == -1) {
        dateArray.push(date);
    }

    $('#result').append(dateArray);
});

上記に関するご支援をいただければ幸いです。

ありがとう :)

4

1 に答える 1

0

dateまず、有効な属性ではないため、HTML は無効です。要素にカスタム値が必要な場合は、data-*属性を使用します。

<div id="container">
    <div class="date" data-date="19/11/2013"></div>
    <div class="date" data-date="06/11/2013"></div>
</div>
<div id="result"></div>

JS で日付を比較するには、それらをDate型に変換する必要がありますが、日付が英国形式であるため、構成要素の日/月/年の部分を分割する必要があります。これを試して:

var dates = $('.date').map(function() {
    var dateArr = $(this).data('date').split('/');
    return new Date(dateArr[2], dateArr[1] -1, dateArr[0])
});
$('#result').append(new Date(Math.max.apply(null, dates)));

フィドルの例

于 2013-11-11T15:56:05.633 に答える