当前位置: 代码迷 >> JavaScript >> js对特定报表排序
  详细解决方案

js对特定报表排序

热度:128   发布时间:2013-10-01 12:15:56.0
js对特定表格排序
function initSortArrays() {
    	var seqArray = [];
    	var amountArray = [];
    	var perArray = [];
    	var timeArray = [];
    	
    	$('.css_issue_no').each(function(){
    		var seqId = $(this).parent().attr('seqId');
    		seqGlobalArray.push(seqId);
    	});
    	
    	$('.css_amont').each(function(){
    		var value = $(this).html();
    		var seqId = $(this).parent().attr('seqId');
    		amountArray.push(value + "_" + seqId);
    	});
    	amountArray = amountArray.sort(function(a, b){
    		a = a.substring('_');
    		b = b.substring('_');
    		return parseInt(a, 10) - parseInt(b, 10);
    	});
    	
    	$('.css_percent').each(function(){
    		var value = $(this).children().html().replace('%', '');
    		var seqId = $(this).parent().attr('seqId');
    		perArray.push(value + "_" + seqId);
    	});
    	perArray = perArray.sort(function(a, b){
    		a = a.substring('_');
    		b = b.substring('_');
    		return parseFloat(a, 10) - parseFloat(b, 10);
    	});
    	
    	$('.css_time').each(function(){
    		var value = $(this).html();
    		var seqId = $(this).parent().attr('seqId');
    		timeArray.push(value + "_" + seqId);
    	});
    	timeArray = timeArray.sort(function(a, b){
    		a = a.substring('_');
    		b = b.substring('_');
    		return a > b;
    	});
    	
    	$.each(amountArray, function(n,value) {
    		value = value.substring(value.indexOf("_") + 1);
    		amountGlobalArray.push(value);  
        });
    	
    	$.each(perArray, function(n,value) {
    		value = value.substring(value.indexOf("_") + 1);
    		perGlobalArray.push(value);  
        });
    	
    	$.each(timeArray, function(n,value) {
    		value = value.substring(value.indexOf("_") + 1);
    		timeGlobalArray.push(value);  
        });
    }
    
    function sortBindClick() {
    	$('#jq_seq_td').unbind('click');
    	$('#jq_seq_td').bind('click', function(){
    		var asc = $(this).attr('asc');
    		if (asc == '0') {
    			$(this).attr('asc', '1');
    			$(this).children().html('↑');
    			sortTable(seqGlobalArray,'1');
    		} else {
    			$(this).attr('asc', '0');
    			$(this).children().html('↓');
    			sortTable(seqGlobalArray,'0');
    		}
    	});
    	
    	$('#jq_amont_td').unbind('click');
    	$('#jq_amont_td').bind('click', function(){
    		var asc = $(this).attr('asc');
    		if (asc == '0') {
    			$(this).attr('asc', '1');
    			$(this).children().html('↑');
    			sortTable(amountGlobalArray, '1');
    		} else {
    			$(this).attr('asc', '0');
    			$(this).children().html('↓');
    			sortTable(amountGlobalArray, '0');
    		}
    	});
    	
    	$('#jq_per_td').unbind('click');
    	$('#jq_per_td').bind('click', function(){
    		var asc = $(this).attr('asc');
    		if (asc == '0') {
    			$(this).attr('asc', '1');
    			$(this).children().html('↑');
    			sortTable(perGlobalArray, '1');
    		} else {
    			$(this).attr('asc', '0');
    			$(this).children().html('↓');
    			sortTable(perGlobalArray, '0');
    		}
    	});
    	
    	$('#jq_time_td').unbind('click');
    	$('#jq_time_td').bind('click', function(){
    		var asc = $(this).attr('asc');
    		if (asc == '0') {
    			$(this).attr('asc', '1');
    			$(this).children().html('↑');
    			sortTable(timeGlobalArray, '1');
    		} else {
    			$(this).attr('asc', '0');
    			$(this).children().html('↓');
    			sortTable(timeGlobalArray, '0');
    		}
    	});
    }
    
    function sortTable(sortedArray, asc) {
    	//升序
    	if (asc == '1') {
    		for (var i=sortedArray.length - 1; i >= 0; i--) {
    			var id = sortedArray[i];
    			var obj = $('#jq_section_div_'+id);
    			var before = $('#jq_bf_tidian_tab tbody').children(':first');
    			if(before.attr('id') != obj.attr('id')){
    				obj.insertBefore(before);
    			}
    		}
    	} else {
    		for (var i=0; i <= sortedArray.length - 1; i++) {
    			var id = sortedArray[i];
    			var obj = $('#jq_section_div_'+id);
    			var before = $('#jq_bf_tidian_tab tbody').children(':first');
    			if(before.attr('id') != obj.attr('id')){
    				obj.insertBefore(before);
    			}
    		}
    	}
    	//重新设置分行颜色
    	setTrClass();
    }
    
    function setTrClass() {
    	$("#jq_bf_tidian_tab tbody tr:odd").addClass("g_bj");
    	$("#jq_bf_tidian_tab tbody tr:even").removeClass("g_bj");
    }

?

  相关解决方案