/** * 表格排序(单个表格,降序) * @example * <code> * <table is_sort="1"> * <tr> * <th><a href="javascript:void(0)" mce_href="javascript:void(0)" οnclick="table_sort(0, 0)">field1</a></th> * <th><a href="javascript:void(0)" mce_href="javascript:void(0)" οnclick="table_sort(1, 1, 1)">field2</a></th> * </tr> * * <!-- 此tr不会参与排序 --> * <tr> * <th>...</th> * <td>...</td> * </tr> * * <!-- 此tr参与排序 is_sort属性 sort_val属性 --> * <tr is_sort="1"> * <th sort_val="val1">...</th> * <th sort_val="val2">...</th> * </tr> * ... * </table> * </code> * @param int index 需要排序的列(从0开始) * @param int is_desc 是否降序 * @param int is_int 是否需要将排序值转换成int类型 * @return void */ function table_sort(index, is_desc, is_int) { $('table[is_sort=1]').each(function(){ var i=0, j=0, this_table = this, is_change=false, tr = null, tmp = null, sort_val1=0, sort_val2=0, pattern=/^0+/; $('tr[is_sort=1]').each(function(){ j = 0; tr = this; $('tr[is_sort=1]', this_table).each(function(){ if (j>=i) { is_change = false; //格式化排序值 sort_val1 = $($('th,td', tr).get(index)).attr('sort_val'); sort_val2 = $($('th,td', this).get(index)).attr('sort_val'); if (is_int) { if (sort_val1!='0') { sort_val1 = parseInt(sort_val1.replace(pattern, '')); } if (sort_val2!='0') { sort_val2 = parseInt(sort_val2.replace(pattern, '')); } } if (1==is_desc && sort_val1<sort_val2) { is_change = true; } else if( 1!=is_desc && sort_val1>sort_val2) { is_change = true; } //交换 //if(parseInt($($('th,td', tr).get(index)).attr('sort_val'))==8)alert('i='+i+'j='+j+'vi='+parseInt($($('th,td', tr).get(index)).attr('sort_val'))+'vj='+parseInt($($('th,td', this).get(index)).attr('sort_val'))+is_change+'=='+$(tr).html()+$(this).html()); if (is_change) { //alert(tmp);alert($(this).html()); tmp = $(tr).html(); $(tr).html($(this).html()); $(this).html(tmp); } } j++; }); i++; }); }); }