В настоящее время у меня есть несколько классов, которые содержат дату внутри атрибута.
<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);
});
Любая помощь по вышеуказанному вопросу была бы весьма признательна.
Благодаря :)
Во-первых, ваш HTML недопустим, поскольку date
не является допустимым атрибутом. Если вам нужно настраиваемое значение в элементе, используйте 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
, однако вам нужно разделить составные дни в день/месяц/год, поскольку дата находится в формате UK. Попробуй это:
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)));