国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS實現HTML表格排序功能

2019-11-20 09:18:12
字體:
來源:轉載
供稿:網友

本文實例為大家分享了JavaScript實現HTML表格排序功能,供大家參考,具體內容如下

HTML代碼:

<table cellpadding="0" id="table">    <tr class="top">      <td>click me</td>      <td>click me</td>      <td>click me</td>      <td>click me</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">阿</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">炳</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">和</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">瞎</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>

JavaScirpt代碼:

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){     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');

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 藁城市| 建瓯市| 庆阳市| 玛曲县| 乐业县| 衡水市| 会昌县| 息烽县| 阿拉善左旗| 绥滨县| 汝南县| 永善县| 汉寿县| 乌拉特中旗| 大石桥市| 虎林市| 进贤县| 和龙市| 呼图壁县| 光山县| 临夏市| 淮南市| 慈利县| 阜康市| 阿拉善左旗| 五莲县| 柳江县| 方山县| 闸北区| 芜湖县| 涞源县| 革吉县| 会理县| 新泰市| 大埔区| 清流县| 万源市| 赞皇县| 顺义区| 博野县| 金湖县|