改写人家的js表格排序

本文介绍了一个使用JavaScript实现的表格排序功能,支持整数、浮点数及字符串类型的排序,并通过改变图标来显示当前的排序状态(升序或降序)。此方法采用冒泡排序算法,适用于简单的前端表格数据管理。

 项目中调用: 1 => array("name"      => $arrLang["contacts_name"]."<img
                src = '../../images/small_desc.gif'  id='contacts_name_sort'   onclick = 'SortField(/"contactsTable/",1,/"string/",this)'   align='absmiddle'  style='cursor:hand;'  alt='".$arrLang['desc']."'>","property1" => "")

 

 

/*表格的冒泡排序   table  支持 一层子节点排序
* tableid 要排序表格的id
*  nColNum 排序所在的列
*  strDataType 数据类型
*  nSortOrder 1 降序  -1 升序  当为升序图标点击 则 nSortOrder = -1; 加载降序图标,
*/
function SortField(tableid,nColNum,strDataType,selfObj){ //冒泡排序
     srcPath  = selfObj.src.split("/");
     srcName = srcPath[srcPath.length-1];
      
    if(srcName == "small_asc.gif"){
    selfObj.src = "../../images/small_desc.gif";
       nSortOrder = -1;
 }else{
    selfObj.src = "../../images/small_asc.gif";
       nSortOrder = 1;
  }
 
   table = document.getElementById(tableid); 
   var length = table.rows.length;  
   for(var i= 0;i<length;i++){  //由于表头还有一行,故i从1开始  
  var exchanged=false;  
  for(var j=length-1;j>i;j--){ 
   if  (typeof(table.rows[j].cells[nColNum].childNodes[0].data) == "undefined")
      curcellval = table.rows[j].cells[nColNum].innerText;
   else
      curcellval = table.rows[j].cells[nColNum].childNodes[0].data;

   if  (typeof(table.rows[j-1].cells[nColNum].childNodes[0].data) == "undefined")
      cmpcellval = table.rows[j-1].cells[nColNum].innerText;
   else
      cmpcellval = table.rows[j-1].cells[nColNum].childNodes[0].data;


    switch(strDataType){  
   case "int":  
     if(nSortOrder>0){  //desc  
    if(parseInt(curcellval) >  
      parseInt(cmpcellval)){  
      Swap(table,j,j-1);  
      exchanged=true;  
    }  
     }  
     else{  
    if(parseInt(curcellval) <  
      parseInt(cmpcellval)){  
      Swap(table,j,j-1);  
      exchanged=true;  
    }  
     }  
     break;  
   case "float":  
     if(nSortOrder>0){  //desc  
    if(parseFloat(curcellval) >  
      parseFloat(cmpcellval)){  
      Swap(table,j,j-1);  
      exchanged=true;  
    }  
     }  
     else{  
    if(parseFloat(curcellval) <  
      parseFloat(cmpcellval)){  
      Swap(table,j,j-1);  
      exchanged=true;  
    }  
     }  
     break;  
   case "string":  
   default:  
     if(nSortOrder>0){  //desc  
    if(curcellval.toString() >  
      cmpcellval.toString()){  
      Swap(table,j,j-1);  
      exchanged=true;  
    }  
     }  
     else{  
    if(curcellval.toString() <  
      cmpcellval.toString()){  
      Swap(table,j,j-1);  
      exchanged=true;  
    }  
     }  
    } //switch  
  } //for j  
  if (!exchanged) break;  
   } //for i  
    } 

function Swap(table,i,j){  

   if(i<0 || j>table.rows.length-1) return;  
   if(i<j){  
  table.moveRow(i,j);  
  table.moveRow(j-1,i);  
   }  
   else{  
  table.moveRow(i,j);  
  table.moveRow(j+1,i);  
   }  
 } 

 

function Swap(table,i,j){  

   if(i<0 || j>table.rows.length-1) return;  
   if(i<j){  
  table.moveRow(i,j);  
  table.moveRow(j-1,i);  
   }  
   else{  
  table.moveRow(i,j);  
  table.moveRow(j+1,i);  
   }  
 } 

 

下附图标:

 

"Mstar Bin Tool"是一款专门针对Mstar系列芯片开发的固件处理软件,主要用于智能电视及相关电子设备的系统维护与深度定制。该工具包特别标注了"LETV USB SCRIPT"模块,表明其对乐视品牌设备具有兼容性,能够通过USB通信协议执行固件读写操作。作为一款专业的固件编辑器,它允许技术人员对Mstar芯片的底层二进制文件进行解析、修改与重构,从而实现系统功能的调整、性能优化或故障修复。 工具包中的核心组件包括固件编译环境、设备通信脚本、操作界面及技术文档等。其中"letv_usb_script"是一套针对乐视设备的自动化操作程序,可指导用户完成固件烧录全过程。而"mstar_bin"模块则专门处理芯片的二进制数据文件,支持固件版本的升级、降级或个性化定制。工具采用7-Zip压缩格式封装,用户需先使用解压软件提取文件内容。 操作前需确认目标设备采用Mstar芯片架构并具备完好的USB接口。建议预先备份设备原始固件作为恢复保障。通过编辑器修改固件参数时,可调整系统配置、增删功能模块或修复已知缺陷。执行刷机操作时需严格遵循脚本指示的步骤顺序,保持设备供电稳定,避免中断导致硬件损坏。该工具适用于具备嵌入式系统知识的开发人员或高级用户,在进行设备定制化开发、系统调试或维护修复时使用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值