最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實(shí)現(xiàn)表格排序方法

 更新時(shí)間:2013年06月14日 11:02:20   作者:  
JavaScript實(shí)現(xiàn)表格排序方法,需要的朋友可以參考一下

參考代碼:

復(fù)制代碼 代碼如下:

<!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控制網(wǎng)頁(yè)內(nèi)表格排序</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>點(diǎn)擊排序</td><td >點(diǎn)擊排序</td><td>點(diǎn)擊排序</td><td>點(diǎn)擊排序</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">網(wǎng)站開發(fā)</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;//標(biāo)簽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的二維數(shù)組
   this.setShow();
  },
  //設(shè)置標(biāo)簽切換
  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;
    }
   }
  },
  //設(shè)置選中列樣式
  colClassSet:function(num,cla){
   //得到關(guān)聯(lián)到的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 根據(jù)第幾列排序  aord 逆序還是順序
  startArray:function(aord,num){
   var afterSort = this.sortMethod(this.T2Arr,aord,num);//排序后的二維數(shù)組傳到排序方法中去
   this.array2Td(num,afterSort);//輸出
  },
  //將受影響的行和列轉(zhuǎn)換成二維數(shù)組
  _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;
  },
  //根據(jù)排序后的二維數(shù)組來(lái)輸出相應(yīng)的行和列的 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]; 
    }
   }
  },
  //傳進(jìn)來(lái)一個(gè)二維數(shù)組,根據(jù)二維數(shù)組的子項(xiàng)中的w項(xiàng)排序,再返回排序后的二維數(shù)組
  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標(biāo)記
 function killHTML(str){
  return str.replace(/<[^>]+>/g,"");
 }
 //------------------------------------------------
 //tableid  第幾行是標(biāo)簽行,從第幾行開始排序,第幾行結(jié)束排序(999表示最后) 升序標(biāo)簽樣式,降序標(biāo)簽樣式  選中列樣式
 //注意標(biāo)簽行的class應(yīng)該是一致的
 var ex1 = new tableSort('table',1,2,999,'up','down','hov');
</script>

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

相關(guān)文章

  • 利用three.js畫一個(gè)3D立體的正方體示例代碼

    利用three.js畫一個(gè)3D立體的正方體示例代碼

    Three.js是一個(gè)3DJavaScript庫(kù),基于右手坐標(biāo)系,可以創(chuàng)建簡(jiǎn)單或是比較復(fù)雜的三維圖形并應(yīng)用豐富多彩的紋理和材質(zhì),可以添加五光十色的光源,可以在3D場(chǎng)景中移動(dòng)物體或是添加腳本動(dòng)畫等等。本文介紹了利用three.js如何畫一個(gè)3D立體的正方體的方法,需要的可以參考下。
    2017-11-11
  • 小程序圖片長(zhǎng)按識(shí)別功能的實(shí)現(xiàn)方法

    小程序圖片長(zhǎng)按識(shí)別功能的實(shí)現(xiàn)方法

    這篇文章主要介紹了小程序圖片長(zhǎng)按識(shí)別功能的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • JavaScript實(shí)現(xiàn)六種網(wǎng)頁(yè)圖片輪播效果詳解

    JavaScript實(shí)現(xiàn)六種網(wǎng)頁(yè)圖片輪播效果詳解

    在網(wǎng)頁(yè)中,我們經(jīng)常會(huì)看到各種輪播圖的效果,它們到底是怎樣實(shí)現(xiàn)的呢?本文將為大家詳細(xì)介紹一下六種不同的輪播效果的實(shí)現(xiàn),需要的可以參考一下
    2021-12-12
  • JavaScript+html5 canvas實(shí)現(xiàn)圖片破碎重組動(dòng)畫特效

    JavaScript+html5 canvas實(shí)現(xiàn)圖片破碎重組動(dòng)畫特效

    這篇文章主要介紹了JavaScript+html5 canvas實(shí)現(xiàn)破碎重組的視頻特效,感興趣的小伙伴們可以參考一下
    2016-02-02
  • javascript中innerHTML 獲取或替換html內(nèi)容的實(shí)現(xiàn)代碼

    javascript中innerHTML 獲取或替換html內(nèi)容的實(shí)現(xiàn)代碼

    這篇文章主要介紹了javascript中innerHTML 獲取或替換html內(nèi)容,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 圖解JavaScript作用域鏈底層原理

    圖解JavaScript作用域鏈底層原理

    當(dāng)代碼在一個(gè)環(huán)境中執(zhí)行時(shí),會(huì)創(chuàng)建變量對(duì)象的一個(gè)作用域鏈,作用域鏈的用途是保證對(duì)執(zhí)行環(huán)境有權(quán)訪問(wèn)的所有變量和函數(shù)的有序訪問(wèn),下面這篇文章主要給大家介紹了關(guān)于JavaScript作用域鏈底層原理的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • js中設(shè)置元素class的三種方法小結(jié)

    js中設(shè)置元素class的三種方法小結(jié)

    列舉所有的方式,看看各瀏覽器的支持差異。方便用js動(dòng)態(tài)設(shè)置元素css的代碼。需要的朋友可以參考下。
    2011-08-08
  • javascript中2個(gè)感嘆號(hào)的用法實(shí)例詳解

    javascript中2個(gè)感嘆號(hào)的用法實(shí)例詳解

    這篇文章主要介紹了javascript中2個(gè)感嘆號(hào)的用法,并用大量的實(shí)例講述了!!的常見應(yīng)用情況,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-09-09
  • WebGL?繪制與變換使用示例詳解

    WebGL?繪制與變換使用示例詳解

    這篇文章主要為大家介紹了WebGL?繪制與變換使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 得到當(dāng)前行的值的javascript代碼

    得到當(dāng)前行的值的javascript代碼

    得到當(dāng)前行的值的javascript代碼...
    2007-06-06

最新評(píng)論

中超| 闵行区| 克什克腾旗| 泌阳县| 安顺市| 义马市| 新建县| 彭泽县| 监利县| 方正县| 米泉市| 桃源县| 卢龙县| 柳州市| 天津市| 五华县| 江永县| 峨边| 保康县| 航空| 简阳市| 临猗县| 修武县| 冕宁县| 泽州县| 寿光市| 盐边县| 桑日县| 车险| 松溪县| 新丰县| 织金县| 高台县| 玛沁县| 北票市| 宝山区| 鹤峰县| 隆回县| 许昌县| 肥东县| 泰州市|