HTML Table 排序

Table 排序

目的:不需要重新加载后台数据

function fnSort(val) {
    var table = $('#DetailTable')[0];   // target table
    var trs = table.getElementsByTagName("tr");
    if (trs.length <= 2) {   //single row
        return;
    }
    var arrObj = [];    //  data record
    for (var trIndex = 1; trIndex < trs.length; trIndex++) {
        var tds = trs[trIndex].getElementsByTagName("td");
        // data field
        arrObj.push({       
            MemberNo: tds[0].innerText,
            RecordType: tds[1].innerText,
            Type: tds[2].innerText,
            Name: tds[3].innerText,
            ChineseName: tds[4].innerText,
            Address: tds[5].innerText,
            ChineseAddress: tds[6].innerText,
            LastUpdateDate: tds[7].innerText
        });
    }
    if (val == "ChineseName" || val == "ChineseAddress") {   //The  Chinese field  need to special processing
        var temp = arrObj[0][val].localeCompare(arrObj[arrObj.length - 1][val]);
        if (temp > 0) {
            arrObj.sort(function (a, b) {        //ASC
                var x = a[val].toLowerCase();
                var y = b[val].toLowerCase();
                return x.localeCompare(y);
            });
        }
        else {
            arrObj.sort(function (b, a) {      // DESC
                var x = a[val].toLowerCase();
                var y = b[val].toLowerCase();
                return x.localeCompare(y);
            });
        }
    }
    else {   //string
        var temp = arrObj[0][val].toLowerCase() > arrObj[arrObj.length - 1][val].toLowerCase();
        if (temp) {
            arrObj.sort(function (a, b) {  //ASC
                var x = a[val].toLowerCase();
                var y = b[val].toLowerCase();
                if (x < y) { return -1; }
                if (x > y) { return 1; }
                return 0;
            });
        }
        else {
            arrObj.sort(function (b, a) {   // DESC
                var x = a[val].toLowerCase();
                var y = b[val].toLowerCase();
                if (x < y) { return -1; }
                if (x > y) { return 1; }
                return 0;
            });
        }
    }
    // Redraw table
    for (var trIndex = 1; trIndex < trs.length; trIndex++) {
        var tds = trs[trIndex].getElementsByTagName("td");
        tds[0].innerText = arrObj[trIndex - 1].MemberNo;
        tds[1].innerText = arrObj[trIndex - 1].RecordType;
        tds[2].innerText = arrObj[trIndex - 1].Type;
        tds[3].innerText = arrObj[trIndex - 1].Name;
        tds[4].innerText = arrObj[trIndex - 1].ChineseName;
        tds[5].innerText = arrObj[trIndex - 1].Address;
        tds[6].innerText = arrObj[trIndex - 1].ChineseAddress
        tds[7].innerText = arrObj[trIndex - 1].LastUpdateDate;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值