用ES6代码实现table表格某一行不参与倒序的排序

**

用ES6代码实现IE可兼容的table表格某一行(合计)不参与倒序的排序

**`//对表格排序
function checkColumnValue(index, type,tableId) {

        var tableObject1 = $('#'+tableId); //获取id为simpleLineTable的table对象
        var tbHead1 = tableObject1.children('thead'); //获取table对象下的thead
        var tbHeadTh1 = tbHead1.find('tr th'); //获取thead下的tr下的th
        var tbBody1 = tableObject1.children('tbody'); //获取table对象下的tbody
        var tbBodyTr1 = tbBody1.find('tr'); //获取tbody下的tr



        var trsValue = new Array();
        //遍历tbBody的tr
        tbBodyTr1.each(function () {
                var tds = $(this).find('td');
                trsValue.push(type + ".separator" + $(tds[index]).html() + ".separator" + $(this).html());
                $(this).html("");
        })

        //合计
        var trsValues1=trsValue[0];

        var len = trsValue.length;
        //console.log(len);

if (index == sortIndex) {
//如果已经排序了则直接倒序
var arr = trsValue.map(function(item,index){
if(index !== 0) {
return item}
});
var reArr=arr.reverse();

             //trsValue=[trsValues1, ...reArr]
             reArr.unshift(trsValues1)
             trsValue=reArr
         } else {
             for (var i = 1; i < len; i++) {
                 //split() 方法用于把一个字符串分割成字符串数组
                 //获取每行分割后数组的第一个值,即此列的数组类型,定义了字符串\数字
                 type = trsValue[i].split(".separator")[0];
                 for (var j = i + 1; j < len; j++) {
                     if (type == "number") {
                         //获取每行分割后数组的第二个值,即文本值
                         value1 = trsValue[i].split(".separator")[1];
                         //获取下一行分割后数组的第二个值,即文本值
                         value2 = trsValue[j].split(".separator")[1];
                         //接下来是数字\字符串等的比较
                         value1 = value1 == "" ? 0 : value1;
                         value2 = value2 == "" ? 0 : value2;
                         if (parseFloat(value1) > parseFloat(value2)) {
                             var temp = trsValue[j];
                             trsValue[j] = trsValue[i];
                             trsValue[i] = temp;
                         }

                     }

                 }

             }



         }

        for (var i = 1; i < len; i++) {
            $("#"+tableId+" tbody tr:eq(" + 0 + ")").html(trsValues1.split(".separator")[2]);
         
            $("#"+tableId+" tbody tr:eq(" + i + ")").html(trsValue[i].split(".separator")[2]);

        }
        sortIndex = index;
}

`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值