jquery tableのソート操作

1638 ワード

最近、レポート配列をソートするには、フロントエンドで次のように処理します.
まず、フロントページのロード時に各行trにカスタム属性data-sort-field-ftimeを追加します.属性値はソートするフィールドの値です(数値が便利です):
$.each(jsonarray, function(i, obj) {
					troptions += "";					
					troptions += ""+(Number(obj.cdsPrem)/unitnow).toFixed(dotnow)+"";
					troptions += ""+(Number(obj.cdjPrem)/unitnow).toFixed(dotnow)+"";
					troptions += ""+(Number(obj.sumPrem)/unitnow).toFixed(dotnow)+"";
					troptions += ""+obj.paiming+"";
					troptions += "";
			});

ソートするヘッダーに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());
	}