2017-09-27 24 views
0

私は日付のリストを持っています。最新のものを取得し、H2(具体的にはspan.lastupdatedタグ)に表示したいと思います。JQueryはリストから最新の日付を見つけます

<h2>Specials (Updated <span class="lastUpdated"></span>)</h2> 

<ul class="items"> 
<li>June 1, 2017</li> 
<li>August 1, 2017</li> 
<li>September 27, 2017</li> 
</ul> 

jQUeryでこれを達成する最も良い方法は何ですか?

答えて

0

日付オブジェクトにそれらを作る場合、あなたは直接<とそれらを比較することができます:

var date = new Date('Jan 1 1980'); 
 
var dateString = ''; 
 
$('.items li').each(function(num, elem) { 
 
    var thisDate = new Date($(elem).text()); 
 
    if (thisDate > date) { 
 
    date = thisDate; 
 
    dateString = $(elem).text(); 
 
    } 
 
}); 
 
$('.lastUpdated').text(dateString);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h2>Specials (Updated <span class="lastUpdated"></span>)</h2> 
 

 
<ul class="items"> 
 
<li>June 1, 2017</li> 
 
<li>August 1, 2017</li> 
 
<li>September 27, 2017</li> 
 
</ul>

0

あなたが一つのループですべてを行うことができます

<script> 
    $(document).ready(function(){ 
     var listDates = []; 
     $('.items li').each(function (i) { 
      var listDateValue = $(this).text(); 
      listDates.push(listDateValue); 
     }); 
     var formattedDates = listDates.map(function(x) { return new Date(x); }) //contains the list of dates available within each item in your ul element. 
     var maxDate = new Date(Math.max.apply(null,formattedDates)); 
     $(".lastUpdated").html(maxDate); 
    }); 
    </script> 
0

を試すことができます:

var mostRecent = null; 
var position = null; 
var items = $('.items').children(); 

items.each(function(index, element) { 
    var temp = new Date($(element).text()); 
    if (!mostRecent || temp > mostRecent) { 
     mostRecent = temp; 
     position = index; 
    } 
}); 
if (position != null) 
    $('span.lastUpdated').text($(items[position]).text()); 
関連する問題