亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript實現表格排序方法

2019-11-20 22:39:05
字體:
來源:轉載
供稿:網友

參考代碼:

復制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JavaScript控制網頁內表格排序</title>
<style> 
 *{font-family:Arial, Helvetica, sans-serif;font-size:14px;border:none;}
 body{text-align:center;}
 table{margin:100px auto;}
 td{width:100px;height:24px;text-align:center;line-height:24px;border:1px solid silver;}
 .red{color:red;}
 .top{background:#CCCCCC;cursor:pointer;}
 .up{background:#FFFFCC url(up.gif) no-repeat right 5px;}
 .down{background:#FFFFCC url(down.gif) no-repeat right 5px;}
 .hov{background:#F0EFE5;}
</style>
</head>
<body>
<table cellpadding="0" id="table">
 <tr class="top"><td>點擊排序</td><td >點擊排序</td><td>點擊排序</td><td>點擊排序</td></tr>
 <tr>
   <td><span id="bfn_la_bac.usa">15.43</span></td>
   <td class="red">700</td>
   <td>1.220</td>
   <td class="red">www.corange.cn</td>
 </tr>
    <tr><td><span id="bfn_la_c.usa">7.05</span></td>
  <td class="red">4</td>
  <td>3,000</td>
  <td class="red">asp</td>
    </tr>
    <tr><td><span id="bfn_la_jpm.usa">30.62</span></td>
  <td class="red">30</td>
  <td>2,558,800</td>
  <td class="red">php</td>
    </tr>
    <tr>
      <td><span id="bfn_la_axp.usa">22.30</span></td>
  <td class="red">5</td><td>6</td>
  <td class="red">js</td>
    </tr>
    <tr><td><span id="bfn_la_mrk.usa">26.31</span></td>
  <td class="red">0.6</td><td>5</td>
  <td class="red">網站開發</td>
    </tr>
    <tr><td><span id="bfn_la_pg.usa">63.16</span></td>
  <td class="red">7</td><td>4</td>
  <td class="red">子</td>
    </tr>
</table>
<script type="text/javascript"> 

 var tableSort = function(){
  this.initialize.apply(this,arguments);
 }

 tableSort.prototype = {

  initialize : function(tableId,clickRow,startRow,endRow,classUp,classDown,selectClass){
   this.Table = document.getElementById(tableId);
   this.rows = this.Table.rows;//所有行
   this.Tags = this.rows[clickRow-1].cells;//標簽td
   this.up = classUp;
   this.down = classDown;
   this.startRow = startRow;
   this.selectClass = selectClass;
   this.endRow = (endRow == 999? this.rows.length : endRow);
   this.T2Arr = this._td2Array();//所有受影響的td的二維數組
   this.setShow();
  },
  //設置標簽切換
  setShow:function(){
   var defaultClass = this.Tags[0].className;
   for(var Tag ,i=0;Tag = this.Tags[i];i++){
    Tag.index = i;
    addEventListener(Tag ,'click', Bind(Tag,statu));
   }
   var _this =this;
   var turn = 0;
   function statu(){
    for(var i=0;i<_this.Tags.length;i++){
     _this.Tags[i].className = defaultClass;
    }
    if(turn==0){
     addClass(this,_this.down)
     _this.startArray(0,this.index);
     turn=1;
    }else{
     addClass(this,_this.up)
     _this.startArray(1,this.index);
     turn=0;
    }
   }
  },
  //設置選中列樣式
  colClassSet:function(num,cla){
   //得到關聯到的td
   for(var i= (this.startRow-1);i<(this.endRow);i++){
    for(var n=0;n<this.rows[i].cells.length;n++){
     removeClass(this.rows[i].cells[n],cla);
    }
    addClass(this.rows[i].cells[num],cla);
   }
  },
  //開始排序  num 根據第幾列排序  aord 逆序還是順序
  startArray:function(aord,num){
   var afterSort = this.sortMethod(this.T2Arr,aord,num);//排序后的二維數組傳到排序方法中去
   this.array2Td(num,afterSort);//輸出
  },
  //將受影響的行和列轉換成二維數組
  _td2Array:function(){  
   var arr=[];
   for(var i=(this.startRow-1),l=0;i<(this.endRow);i++,l++){
    arr[l]=[];
    for(var n=0;n<this.rows[i].cells.length;n++){
     arr[l].push(this.rows[i].cells[n].innerHTML);
    }
   }
   return arr;
  },
  //根據排序后的二維數組來輸出相應的行和列的 innerHTML 
  array2Td:function(num,arr){
   this.colClassSet(num,this.selectClass); 
   for(var i= (this.startRow-1),l=0;i<(this.endRow);i++,l++){
    for(var n=0;n<this.Tags.length;n++){
     this.rows[i].cells[n].innerHTML = arr[l][n]; 
    }
   }
  },
  //傳進來一個二維數組,根據二維數組的子項中的w項排序,再返回排序后的二維數組
  sortMethod:function(arr,aord,w){
   //var effectCol = this.getColByNum(whichCol);
   arr.sort(function(a,b){
    x = killHTML(a[w]);
    y = killHTML(b[w]);
    x = x.replace(/,/g,'');
    y = y.replace(/,/g,'');
    switch (isNaN(x)){
     case false:
     return Number(x) - Number(y);
     break;
     case true:
     return x.localeCompare(y);
     break;
    }
   });
   arr = aord==0?arr:arr.reverse();
   return arr;
  }
 }
 /*-----------------------------------*/
 function addEventListener(o,type,fn){
  if(o.attachEvent){o.attachEvent('on'+type,fn)}
  else if(o.addEventListener){o.addEventListener(type,fn,false)}
  else{o['on'+type] = fn;}
 }

 function hasClass(element, className) { 
  var reg = new RegExp('(//s|^)'+className+'(//s|$)'); 
  return element.className.match(reg); 
 } 

 function addClass(element, className) { 
  if (!this.hasClass(element, className)) 
  { 
   element.className += " "+className; 
  } 
 } 

 function removeClass(element, className) { 
  if (hasClass(element, className)) { 
   var reg = new RegExp('(//s|^)'+className+'(//s|$)'); 
   element.className = element.className.replace(reg,' '); 
  } 
 } 

 var Bind = function(object, fun) {
  return function() {
   return fun.apply(object, arguments);
  }
 }
 //去掉所有的html標記
 function killHTML(str){
  return str.replace(/<[^>]+>/g,"");
 }
 //------------------------------------------------
 //tableid  第幾行是標簽行,從第幾行開始排序,第幾行結束排序(999表示最后) 升序標簽樣式,降序標簽樣式  選中列樣式
 //注意標簽行的class應該是一致的
 var ex1 = new tableSort('table',1,2,999,'up','down','hov');
</script>

  
<br><br>
</body>
</html>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久热爱精品视频线路一| 亚洲精品视频久久| 国产成人精品免费久久久久| 丁香五六月婷婷久久激情| 国产精品国模在线| 日韩欧美在线国产| 色婷婷av一区二区三区在线观看| 亚洲视频在线看| 亚洲第一免费播放区| 国产精品精品一区二区三区午夜版| 97人人爽人人喊人人模波多| 欧美亚洲成人免费| 伊人av综合网| 亚洲欧洲av一区二区| 欧美一级大片视频| 一区二区日韩精品| 日韩中文娱乐网| 性夜试看影院91社区| 91精品中文在线| 粉嫩av一区二区三区免费野| 国产成人+综合亚洲+天堂| 国模视频一区二区| 日韩高清电影免费观看完整| 日韩高清欧美高清| 午夜精品视频网站| 456亚洲影院| 亚洲人成五月天| 亚洲国产精品久久久久| 久久久99久久精品女同性| 国产99久久精品一区二区永久免费| 国产精品久久久久久亚洲影视| 久久久噜噜噜久噜久久| 欧美裸体视频网站| 国产精品一区二区在线| 亚洲直播在线一区| 国产精品入口免费视| 日韩欧美精品在线观看| 国产日本欧美在线观看| 国产视频精品一区二区三区| 国语自产精品视频在线看一大j8| 欧美激情亚洲综合一区| 久久偷看各类女兵18女厕嘘嘘| 国产91成人在在线播放| 久久国产精品久久久久久| 国产精品美女久久久久av超清| www.日本久久久久com.| 欧美日韩在线看| 一级做a爰片久久毛片美女图片| 一区二区欧美日韩视频| 欧美日韩在线免费观看| 亚洲国产成人av在线| 国产精品久久久久久久久久久不卡| 亚洲黄色在线看| 亚洲国产女人aaa毛片在线| 日韩av影片在线观看| 日本亚洲欧美三级| 午夜精品一区二区三区在线| 在线视频日本亚洲性| 亚洲国产精品成人av| 国产成人涩涩涩视频在线观看| 中文字幕欧美在线| 久久99国产精品自在自在app| 亚洲视屏在线播放| 成人欧美一区二区三区在线| 欧美日韩精品在线视频| 九色精品美女在线| 欧美精品www在线观看| 欧美裸体男粗大视频在线观看| 国产精品免费在线免费| 欧美高清在线播放| 久久久久久久久国产精品| 久久久亚洲网站| 欧美成人午夜影院| 欧美在线观看视频| 欧美成人合集magnet| 国语自产偷拍精品视频偷| 国产欧亚日韩视频| 91精品成人久久| 亚洲国产91精品在线观看| 国产精品久久久久久久久久久新郎| 国产精品三级网站| 久久久久亚洲精品国产| 欧美日韩综合视频| 成人国产精品久久久久久亚洲| 成人网在线视频| 97久久精品人搡人人玩| 91亚洲精品一区| 亚洲精品资源美女情侣酒店| 精品中文字幕乱| 日韩欧美精品网站| 成人黄色在线免费| 亚洲欧美中文在线视频| 黑人巨大精品欧美一区二区三区| 精品国产一区二区三区久久狼黑人| 日本午夜精品理论片a级appf发布| 亚洲精品自在久久| 亚洲一区二区三| 亚洲男人第一网站| 久久在线精品视频| 最近2019年日本中文免费字幕| 国产美女久久精品香蕉69| 久久久久一本一区二区青青蜜月| 亚洲欧美国产高清va在线播| 成人免费视频xnxx.com| 免费av在线一区| 色先锋资源久久综合5566| 日韩综合视频在线观看| 岛国精品视频在线播放| 日韩久久免费电影| 亚洲日本aⅴ片在线观看香蕉| 欧美疯狂性受xxxxx另类| 欧美精品一区在线播放| 亚洲电影天堂av| 久久视频国产精品免费视频在线| 亚洲欧美激情另类校园| 精品国产成人av| 日韩亚洲精品电影| 欧美亚洲一区在线| 久久久精品999| 日本高清不卡的在线| 亚洲美女在线视频| 欧美黄色片在线观看| 久久人人爽亚洲精品天堂| 成人h视频在线观看播放| 深夜福利一区二区| 久久久久国产精品www| 一区二区三区无码高清视频| 亚洲国产精品成人av| 色婷婷综合久久久久中文字幕1| 久久香蕉精品香蕉| 国产精品久久久| 亚洲美女在线视频| 97免费在线视频| www.欧美视频| 精品国产网站地址| 免费不卡在线观看av| 国产欧美一区二区三区四区| 国内精品中文字幕| 国产精品男人的天堂| 国产精品视频一区二区三区四| 久久精品国产亚洲| 亚洲国产精品一区二区三区| 久久久久国产精品免费网站| 日韩欧美国产黄色| 91精品视频在线免费观看| 国产成人精品久久亚洲高清不卡| 国产精品v片在线观看不卡| 亚洲国产欧美一区二区三区久久| 国内成人精品一区| 国产欧美在线视频| 日韩视频免费大全中文字幕| 日韩欧美精品在线观看| 久久久久久久成人| 亚洲国产精品视频在线观看| 亚洲国内精品在线| 久久精品中文字幕一区| 狠狠色香婷婷久久亚洲精品| 国自产精品手机在线观看视频| 欧美精品福利在线| 国产精品久久久久久久电影| 国产精品日韩在线一区| 亚洲精品一区二区在线| 搡老女人一区二区三区视频tv| 国产成人免费av电影|