首頁 >web前端 >js教程 >jQuery如何對table進行排序操作的範例詳解

jQuery如何對table進行排序操作的範例詳解

黄舟
黄舟原創
2017-08-11 13:59:201823瀏覽

這篇文章主要介紹了jquery對table做排序操作的實例演示,通過添加自定義屬性data-sort-field-ftime及表頭添加onchange事件詳細講解了操作過程,需要的朋友可以參考下

最近要對報表數組進行排序,在前端處理如下:

首先在前台頁面加載時對每行tr添加自定義的屬性data-sort-field-ftime,屬性值為要排序的欄位的值(我的是數字比較方便):


$.each(jsonarray, function(i, obj) {
          troptions += "<tr data-sort-field-ftime=\""+obj.paiming+"\">";          
          troptions += "<td>"+(Number(obj.cdsPrem)/unitnow).toFixed(dotnow)+"</td>";
          troptions += "<td>"+(Number(obj.cdjPrem)/unitnow).toFixed(dotnow)+"</td>";
          troptions += "<td>"+(Number(obj.sumPrem)/unitnow).toFixed(dotnow)+"</td>";
          troptions += "<td>"+obj.paiming+"</td>";
          troptions += "</tr>";
      });

在要排序的表頭新增onchange事件,以下為onchange事件:


//排序处理
  function changepm(){
    var sortType=$("#pm").val();
    var $trList = $("#ta tbody > tr");//获取现有tr对象
    //冒泡排序    
    for (var i = 0; i < $trList.length - 1; i++) {
      for (var j = 0; j < $trList.length - 1 - i; j++) {
        var value1 = parseInt($trList[j].attributes["data-sort-field-ftime"].nodeValue); 
        var value2 = parseInt($trList[j + 1].attributes["data-sort-field-ftime"].nodeValue);
        if (sortType === "asc" ? value1 > value2 : value1 < value2) {
          var $temp = $trList[j];
          $trList[j] = null;
          $trList[j] = $trList[j + 1];
          $trList[j + 1] = null;
          $trList[j + 1] = $temp;
        }
      }
    }           
    //返回排序后的tr集合
    //将原来的tr清空,再将排序后的tr插入到table的dom中
    console.log($trList);
    $trList.appendTo($("#ta > tbody").empty());
  }

以上是jQuery如何對table進行排序操作的範例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn