繁体   English   中英

根据日期对 div 进行排序 - javascript

[英]sort divs based on dates - javascript

我有带有数据属性data-submit-date div,我想根据此属性的值(日期格式)对它们进行排序。

这是其中一个 div 的代码:

<div class="article" data-submit-date="2017-09-12T05:45:36.951Z">
     <h1>aaaaA</h1>
</div>

我的尝试:

$divss = $(".article");
    var alphaOrderDivs = $divss.sort(function (a, b) {
    return $(a).data("submit-date") > $(b).data("submit-date"); 
});
$(".articles").html(alphaOrderDivs);

我用Date.parse($(a).data("submit-date"))替换了这一行$(a).data("submit-date") Date.parse($(a).data("submit-date"))但它失败了。 谁能帮我?

预先感谢

尝试以下

var articles = $.makeArray($(".article"));
articles.sort(function(a, b) {
   return new Date($(a).data("submit-date")) < new Date($(b).data("submit-date"));
});

片段

 var articles = $.makeArray($(".article")); articles.sort(function(a, b) { return new Date($(a).data("submit-date")) < new Date($(b).data("submit-date")); }); console.log(articles);
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="article" data-submit-date="2017-09-10T05:45:36.951Z"> <h1>aaaaA</h1> </div> <div class="article" data-submit-date="2017-09-12T05:45:36.951Z"> <h1>aaaaA</h1> </div> <div class="article" data-submit-date="2017-09-11T05:45:36.951Z"> <h1>aaaaA</h1> </div>

使用 getTime() 方法如下:

 $divss = $(".article");
 var alphaOrderDivs = $divss.sort(function (a, b) {
   return new Date($(a).data("submit-date")).getTime() > new Date($(b).data("submit-date")).getTime(); 
 });
 $(".articles").html(alphaOrderDivs);

Date 对象的 getTime() 方法会将您的时间解析为毫秒,从而帮助您比较它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM