javascript - 使用 jQuery 按日期顺序排列 <p> 元素

标签 javascript jquery html datetime

大家好,我有一个包含数据日期的列表,其中包含它需要出现的订单日期。

这是我的代码:

HTML:

<p data-date="Fri, 26 Aug 2011 20:58:39 GMT">item 1</p>
<p data-date="Fri, 24 Aug 2011 20:58:39 GMT">item 2</p>
<p data-date="Fri, 25 Aug 2011 20:58:39 GMT">item 3</p>

jQuery:

$("p").sort(function(a,b){
    return new Date($(a).attr("data-date")) > new Date($(b).attr("data-date"));
}).each(function(){
    $("body").prepend(this);
})

jsFiddle Demo

似乎有效了 50%

最佳答案

您需要手动解析dd/mm/yyyy格式的日期。此外,sort 函数希望您返回一个大于小于或等于零的数字;不是 truefalse。修改后的功能:

$("#posts li").sort(function (a, b) {
    var aComp = $(a).attr("data-date").split("/");
    var aDate = new Date(+aComp[2], +aComp[1] - 1, +aComp[0]);
    var bComp = $(b).attr("data-date").split("/");
    var bDate = new Date(+bComp[2], +bComp[1] - 1, +bComp[0]);
    return aDate - bDate;
}).prependTo("#posts");

Demo here

关于javascript - 使用 jQuery 按日期顺序排列 <p> 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20492787/

相关文章:

javascript - 无法使用 electronjs 和 jquery 显示 OpenDialog

android - 制作一款在 Facebook 上运行并作为智能手机应用程序运行的游戏

javascript - 如何通过单击按钮更改 geojson 样式

javascript - 如何让 div scroll overflow-x 在移动浏览器上工作?

javascript - 如何使 $.load() 执行通过 AJAX 以 HTML 形式返回的脚本?

Html <td> 宽度问题。和colspan有关系吗?如何?

javascript - 将元素从列表拖到 div

javascript - 将传单标记放置在圆周上的参数方程不精确?

javascript - 如何使动画仅在可见时工作

javascript - JQuery - 如果 href 等于某物,如何将类添加到特定范围