大家好,我有一个包含数据日期的列表,其中包含它需要出现的订单日期。
这是我的代码:
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);
})
似乎有效了 50%
最佳答案
您需要手动解析dd/mm/yyyy
格式的日期。此外,sort
函数希望您返回一个大于小于或等于零的数字;不是 true
或 false
。修改后的功能:
$("#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");
关于javascript - 使用 jQuery 按日期顺序排列 <p> 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20492787/