我有这个脚本来排序日期
function (list) {
var $list = $(list);
var elems = $.makeArray($list.find("li"));
elems.sort(function(a, b) {
return new Date($(a).find(".to-date").attr("data-todate")) < new Date($(b).find(".to-date").attr("data-todate"));
});
$list.html(elems);
}
和html
<ul id="theList">
<li><span class=".to-date" data-todate="2015-01">2015-01</span></li>
<li><span class=".to-date" data-todate="2017-01">2015-01</span></li>
<li><span class=".to-date" data-todate="now">now</span></li>
</ul>
现在我想在todate attr中对包含“now”的项目进行排序,然后先进行排序。我如何实现这一目标?
答案 0 :(得分:0)
在java.lang.ClassCastException: se.emilsjolander.stickylistheaders.WrapperView cannot be cast to com.wdullaer.swipeactionadapter.SwipeViewGroup
函数中,您可以检查sort
是否等于$(a).find(".to-date").attr("data-todate")
,如果是这种情况,则返回true。如果now
等于$(b).find(".to-date").attr("data-todate")
,则返回false。否则使用标准比较逻辑。
now
答案 1 :(得分:0)
这可以解决问题
elems.sort(function(a, b) {
if (($(a).find(".to-date").attr("data-todate") === "now"))
return -1;
if (($(b).find(".to-date").attr("data-todate") === "now"))
return 1;
return new Date($(a).find(".to-date").attr("data-todate")) < new Date($(b).find(".to-date").attr("data-todate"));
});
希望有所帮助
丹