麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

JS實現點擊表頭表格自動排序(含數字、字符串、日期)

2019-11-19 17:48:47
字體:
來源:轉載
供稿:網友

效果圖如下:

Demo演示地址:點擊這里

主要的JS代碼如下:

var tbody = document.querySelector('#tableSort').tBodies[0];var th = document.querySelector('#tableSort').tHead.rows[0].cells;var td = tbody.rows;for (var i = 0;i < th.length;i++){  th[i].flag = 1;  th[i].onclick = function(){    sort(this.getAttribute('data-type'),this.flag,this.cellIndex);    this.flag = -this.flag;  };};function sort(str,flag,n){  var arr = []; //存放DOM  for (var i = 0;i < td.length;i++){    arr.push(td[i]);  };  //排序  arr.sort(function(a,b){    return method(str,a.cells[n].innerHTML,b.cells[n].innerHTML) * flag;  });  //添加  for (var i = 0;i < arr.length;i++){    tbody.appendChild(arr[i]);  };};//排序方法function method(str,a,b){  switch (str){  case 'num': //數字排序    return a-b;    break;  case 'string': //字符串排序    return a.localeCompare(b);    break;  default:  //日期排序,IE8下'2012-12-12'這種格式無法設置時間,替換成'/'    return new Date(a.split('-').join('/')).getTime()-new Date(b.split('-').join('/')).getTime();  };};

完整實例代碼

<!DOCTYPE><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>JS實現點擊表頭表格自動排序(含數字、字符串、日期)</title><style>#tableSort{moz-user-select: -moz-none;-moz-user-select: none;-o-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;border-collapse: collapse; border-spacing: 0; margin: 0; padding: 0;width: 100%;text-align: center;margin:15px 0;}	#tableSort th{cursor: pointer; background: #eee}	#tableSort tr:nth-child(even){background: #f9f9f9}	#tableSort th,#tableSort td{padding: 10px; border:1px solid #ccc;}</style></head><body><table id="tableSort"><thead><tr><th data-type="num">工號</th><th data-type="string">姓名</th><th data-type="string">性別</th><th data-type="date">時間</th></tr></thead><tbody><tr><td>07</td><td>aaaa</td><td>男</td><td>2012-12-12</td></tr><tr><td>03</td><td>mmmm</td><td>女</td><td>2013-12-16</td></tr><tr><td>01</td><td>cccc</td><td>男</td><td>2014-12-12</td></tr><tr><td>04</td><td>ffff</td><td>女</td><td>2015-12-12</td></tr><tr><td>02</td><td>bbbb</td><td>男</td><td>2016-12-18</td></tr><tr><td>06</td><td>ssss</td><td>女</td><td>2008-10-07</td></tr><tr><td>05</td><td>tttt</td><td>男</td><td>2012-07-22</td></tr></tbody></table><script>;(function(){var tbody = document.querySelector('#tableSort').tBodies[0];var th = document.querySelector('#tableSort').tHead.rows[0].cells;var td = tbody.rows;for(var i = 0;i < th.length;i++){  th[i].flag = 1;  th[i].onclick = function(){    sort(this.getAttribute('data-type'),this.flag,this.cellIndex);    this.flag = -this.flag;  };};function sort(str,flag,n){  var arr = [];  for(var i = 0;i < td.length;i++){    arr.push(td[i]);  };  arr.sort(function(a,b){    return method(str,a.cells[n].innerHTML,b.cells[n].innerHTML) * flag;  });  for(var i = 0;i < arr.length;i++){    tbody.appendChild(arr[i]);  };};function method(str,a,b){  switch(str){  case 'num':     return a-b;    break;  case 'string':     return a.localeCompare(b);    break;  default:    return new Date(a.split('-').join('/')).getTime()-new Date(b.split('-').join('/')).getTime();  };};})();</script></body></html>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: avav在线播放 | 国产91一区 | 九九热在线视频免费观看 | 国产亚洲精久久久久久蜜臀 | 中文字幕在线免费观看电影 | 国产精品一区视频 | 国产精品久久久久久久久久久天堂 | 黄色免费高清网站 | 成人毛片网站 | 免费观看一级黄色片 | 北原夏美av | 一级毛片播放 | 日本xxxx色视频在线观看免费, | 亚洲码无人客一区二区三区 | 天天操很很操 | 午夜精品久久久久久久99热浪潮 | 舌头伸进添的我好爽高潮网站 | 国产99久久精品一区二区300 | sese综合| 宅男噜噜噜66国产免费观看 | 成人午夜一区 | 国产精品国产三级国产在线观看 | 中日韩乱码一二新区 | 国产 视频 一区二区 | 黄色免费在线网址 | 在线91视频 | 国产一级毛片国语版 | 亚洲va久久久噜噜噜久久男同 | 超碰97在线人人 | 欧美电影在线观看 | 欧美成人一区二区三区 | 久久久久免费精品 | 午夜视频久久久 | 99久久电影| 免费国产一级特黄久久 | 久草在线精品观看 | 免费观看三级毛片 | 午夜人体 | 99在线免费观看视频 | 色女人在线 | 88xx成人永久免费观看 |