Dom + Javascript 在本机浏览器中对的表格数据进行排序

// 设置数组在(i,j)的元素值为value
  this.setElement = function(i,j,value){ lines[i][j] = value; };
 
  // 获取数组在(i,j)处元素的值
  this.getElement = function(i,j){return lines[i][j];};
 
  // 返回数组第i行所在的数组
  this.getLine = function(i){return lines[i];};
 
  // 根据第j列字符串的值,对数组的行进行排序,排序结果为升序
  this.sortLine = function(j){
       indexCol = j;
       lines.sort(arrayCompare);
      };
 
  // 根据第j列数值的值,对数组的行进行排序,排序结果为升序
  this.sortLineByNumber = function(j){
       indexCol = j;
       lines.sort(arrayCompareNumber);
      };
 
  // 根据第j列字符串的值,对数组的行进行排序,排序结果为倒序
  this.sortLineRev = function(j){

数据挖掘论坛


       indexCol = j;
       lines.sort(arrayCompareRev);
      };
 
  // 根据第j列数值的值,对数组的行进行排序,排序结果为倒序
  this.sortLineByNumberRev = function(j){
       indexCol = j;
       lines.sort(arrayCompareNumberRev);
      };
  //将二维数组转为字符串格式
  this.toString = function(){
       var rst ="";
       for(var i = 0; i < lines.length; i++){
        for(var j = 0; j < lines[i].length; j++){
         rst += lines[i][j];
         rst += " ";
        }
        rst += " ";
       }
       return rst;
      };
 } // end of BiArray define
 
 //ascending or descending
 var asce = true; 数据挖掘交友

 /**
  对表格中指定范围的数据进行排序
  tableId    要排序的表格的id,值格式为 <table id="tb1" >
  sortCol    用于排序的列号,从1开始计数
  compareType   排序时比较方式,s-按字符串比较,n-按数值比较
  startRow   排序范围起始行号,从1开始计数
  endRow     排序范围结束行号,从1开始计数
  startCol   排序范围起始列号,从1开始计数
  endCol     排序范围结束列号,从1开始计数
 */
 function sortTableInRange(tableId,sortCol,compareType,startRow,endRow,startCol,endCol){
 
 
  try{
   var table = document.getElementById(tableId);
   // get all row object of the table
   var objRows = table.getElementsByTagName("tr");
   //alert(objRows.length);
  
   endRow = (endRow < objRows.length ? endRow : objRows.length);

数据挖掘实验室


  
   var sortRows = endRow - startRow + 1;
   //alert("sortRows "+sortRows);
   if (sortRows < 2) //only one line,don"t sort
    return ;
  
  
   endCol = (endCol < objRows[1].getElementsByTagName("td").length ? endCol :
     objRows[1].getElementsByTagName("td").length);
  
  
   // column number of sort
   //var cols = objRows[1].childNodes.length;
   var cols = endCol - startCol + 1;
   
  
   
   // define a array to store table cell and sort them
   var tabData = new BiArray(sortRows,cols);
  
  
   var ari = 0;
   // retrived table cell data save to array
   for(i = startRow - 1; i < endRow; i++){ 数据挖掘工具
    //retrived all <td> cell
    var cells = objRows[i].getElementsByTagName("td");
   
    var arj = 0;
    for(var j = startCol - 1; j < endCol; j++){
     tabData.setElement(ari,arj,cells.item(j).innerHTML);
     arj++;
    
    }
    ari++;
   }
  
   if (asce){
    if (compareType == "n" || compareType == "N")
     tabData.sortLineByNumber(sortCol- startCol);
    else
     tabData.sortLine(sortCol - startCol);
    asce = false;
   }else{
    if (compareType == "n" || compareType == "N")
     tabData.sortLineByNumberRev(sortCol - startCol);
    else
     tabData.sortLineRev(sortCol - startCol);
    asce = true;
   }
   ari = 0;
   //update table data with array
   for(i = startRow -1; i < endRow; i++){
    //retrived all <td> cell
    var cells = objRows[i].getElementsByTagName("td");
   
    arj = 0;
    for(var j = startCol - 1; j < endCol; j++){
     cells.item(j).innerHTML = tabData.getElement(ari,arj);
     arj++;
    }
    ari++;
   } 数据挖掘工具

  }catch(e){
   alert(e);
  }
 } 数据挖掘实验室

 /**
  对表格除第一行外的数据行排序,是sortYableInRange(tableId,sortCol,compareType,2,tabRows,1,tabCols)
  的特例。
  tableId    要排序的表格的id,值格式为 <table id="tb1" >
  用于排序的列号,从1开始计数
  compareType   排序时比较方式,s-按字符串比较,n-按数值比较
 */
 function sortTable(tableId,sortCol,compareType){
 
 
  try{
   var table = document.getElementById(tableId);
   // get all row object of the table
   var objRows = table.getElementsByTagName("tr");
   //alert(objRows.length);
  
  
   var endRows = objRows.length;
  
   if (endRows < 2) //only one line,don"t sort
    return ;
  
   // column number of table
   var cols = objRows[1].getElementsByTagName("td").length; 数据挖掘交友
  
  
   sortTableInRange(tableId,sortCol,compareType,2,endRows,1,cols);
  
  }catch(e){
   alert(e);
  }
 }

数据挖掘工具

 ==========javascript 代码结束============
 
例子HTML页面代码
 
<html>
<head content="text/html; charset=gb2312" >
<script type="text/javascript" src="sorttable.js">
</script>
</head>
 <body>
  常规排序例子<br>
  <table id="t1" border="1">
   <tr>
    <td width="20%"><a href="#" onclick="sortTable("t1",1,"s")" >城市</a></td>
    <td width="30%"><a href="#" onclick="sortTable("t1",2,"s")" >品牌</a></td>
    <td width="30%"><a href="#" onclick="sortTable("t1",3,"n")" >销量</a></td>
   </tr>
   <tr> 数据挖掘实验室
   
    <td><a href="#" >北京</a></td>
    <td>GOOGLE</td>
    <td>64</td>
   </tr>
   <tr>
    <td>上海</td>
    <td>CISCO</td>
    <td>54</td>
   </tr>
   <tr>
    <td>广州</td>
    <td>MS</td>
    <td>9</td>
   </tr>
   <tr>
   
    <td>南京</td>
    <td>INTEL</td>
    <td>120</td>
   </tr>
  </table>
 

数据挖掘研究院

  <br>对部分数据排序例子(对第2-5行,第2-4列区域排序)<br>
  <table id="t2" border="1">
   <tr>
    <td>序号</td>
    <td width="20%"><a href="#" onclick="sortTableInRange("t2",2,"s",2,5,2,4)" >城市</a></td>
    <td width="30%"><a href="#" onclick="sortTableInRange("t2",3,"s",2,5,2,4)" >品牌</a></td>
    <td width="30%"><a href="#" onclick="sortTableInRange("t2",4,"n",2,5,2,4)" >销量</a></td>
   </tr>
   <tr>
    <td>1</td>
    <td><a href="#" >北京</a></td>
    <td>GOOGLE</td>


    <td>64</td>
   </tr>
   <tr>
    <td>2</td>
    <td>上海</td>
    <td>CISCO</td>
    <td>54</td>
   </tr>
   <tr>
    <td>3</td>
    <td>广州</td>
    <td>MS</td>
    <td>9</td>
   </tr>
   <tr>
    <td>4</td>
    <td>南京</td>
    <td>INTEL</td>
    <td>120</td>
   </tr>
  </table>
 </body>
</html>

数据挖掘研究院

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:Dom + Javascript 在本机浏览器中对的表格数据进行排序
下一篇:VC++中利用MSXML解析XML文档
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • 阿蒙:一个程序员老总的年终总结
  • HTML框架代码全集
  • JAVA字符集
  • 即将消逝的十大热门技术 Java也算
  • 统一建模语言(UML)的现状及发展
  • UML的三大“硬伤”
  • AJAX 常用函数
  • UML用例建模的慨念和应用
  • AJAX通用类:AJAXRequest v0.3
  • 服务器端可控情形JS跨域访问解决方法
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • Rational Rose和UML可视化建模基础
  • 系统约定:用UML描述工作流管理
  • UML的三大“硬伤”
  • 统一建模语言UML释义之(三)
  • 绘制UML活动图的步骤和要点
  • UML用例建模的慨念和应用
  • 用Rational Rose给XML DTD造型
  • 统一建模语言(UML)的现状及发展
  • 统一建模语言UML释义(二)
  • 统一建模语言UML概述
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静