天天看点

js表格移动到指定行

function freshView(){
        // 当前显示有数据时
         if(GlobalDataLength>0){
             // 这里为了防止并发采用副本形式进行数据查找
             var dataList = GlobalData.concat();

             //刷新显示位置到当前时间最近的一条数据
             if(StopPushtoNow)
                 return;
             // 此方法实现的是定位到离当前utc时间最近的数据,可根据需要自行调整
             currentdate = new Date();

             nowdate=currentdate.getTime()+currentdate.getTimezoneOffset()*60000;

             if(dataList != null && dataList != undefined && dataList.length > 1) {
                 var copyGlo = dataList.concat();
                 if (copyGlo != null && copyGlo != undefined && copyGlo.length > 1) {
                     // 对数组进行排序
                     copyGlo.sort(comparedate);
                     // 获取最近的时间并指定到该行上
                     //获取table序号
                     var mytable = document.getElementById("tableList");
                     var nowRow = new Date(copyGlo[0].scheduledTime);
                     for (var i = 0; i < mytable.rows.length; i++) {
                         //console.log(mytable.rows[i].cells[4].innerHTML);
                         var date = new Date(mytable.rows[i].cells[3].innerHTML);
                         if (date.getTime() == nowRow.getTime()) {
                             // 根据行高进行滑块移动位置计算
                             var heightpx=$("#tableList tr").height();
                             $("#initDataTable").scrollTop((i - 1) * heightpx);
                             break;
                         }
                     }
                 }
             }
         }
    }
           

时间对比排序算法

// 计算两个时间的差值找到离当前时间最近的时间
    var comparedate = function (obj1, obj2) {
        var val1 = new Date(obj1.scheduledTime);
        var val2 = new Date(obj2.scheduledTime);
        var dc1 = Math.abs((parseInt(nowdate - val1)/1000));
        var dc2 = Math.abs((parseInt(nowdate - val2)/1000));
        if (dc1 < dc2) {
            return -1;
        } else if (dc1 > dc2) {
            return 1;
        } else {
            return 0;
        }
    }
           

继续阅读