数据在页面获取的,不是后台接收的,需要按时间从新到旧排序然后显示前5条。
代码写到这卡住了。
是在代码里把时间转换成时间戳,比较时间戳的大小
时间戳的排序是拍好的,就是 obj,只取了5个。
然后我是把值赋给li,给设置了个data-num,判断这个跟obj里的一致,就显示对应的那条li。
现在在页面就显示没有排序过的10条。应该是判断错了,有解决办法吗?
<script src="./jquery.min.js"></script>
<script>
$(function () {
function sortArr(){
var arr =[];
$('.i-list li').hide();
$(".i-list li").each(function(index,element){
var _this = $(this);
var ele = Date.parse(new Date($(this).find('.time').text().replace("-","/").replace("-","/")));
_this.attr('data-num',ele);
// console.log(ele);
arr.push(ele);
arr = arr.sort(function(a,b){
return a < b ? 1 : -1;
});
var obj = arr.slice(0,5);
for (var j = 0; j < obj.length; j++) {
if(_this.attr('data-num') == obj[j]) {
_this.show();
}
}
});
}
sortArr();
});
</script>
不是,为什么每一个li的循环都有一个排序过程。第一个li,arr是空的,塞进去第一个li,直接就排序了,然后还判断第一个li在不在排序的前五名,就一脑袋问号