全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

TableSort.js表格排序插件使用方法详解

本文实例为大家分享了TableSort.js表格排序的具体代码,供大家参考,具体内容如下

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>TableSort</title> 
<style type="text/css"> 
table { 
  border-collapse: collapse; 
  width: 300px; 
} 
table caption { 
  border-right: 1px solid #abc; 
  border-left: 1px solid #abc; 
  border-top: 2px solid #000; 
  border-bottom: 2px solid #000; 
  background-color: #afd; 
} 
#sales tr, #sales td { 
  border: 1px solid #abc; 
  text-align: center; 
} 
</style> 
</head> 
<body> 
<table id="sales" summary="summary here"> 
 <caption> 
 Main Title 
 </caption> 
 <col/> 
 <col/> 
 <col/> 
 <thead> 
  <tr> 
   <th class="asc">Col1</th> 
   <th>Col2</th> 
   <th>Col3</th> 
  </tr> 
 </thead> 
 <tbody> 
  <tr> 
   <td>A1</td> 
   <td>S2</td> 
   <td>W3</td> 
  </tr> 
  <tr> 
   <td>B1</td> 
   <td>C2</td> 
   <td>V3</td> 
  </tr> 
  <tr> 
   <td>C1</td> 
   <td>X2</td> 
   <td>K3</td> 
  </tr> 
 </tbody> 
 <!-- tfoot><tr><td cols=3 >other description</td></tr></tfoot --> 
</table> 
<button onclick="fn()">Test</button> 
<script language="javascript"> 
function TableSort(id) { 
  this.tbl = document.getElementById(id); 
  this.lastSortedTh = null; 
  if (this.tbl && this.tbl.nodeName == "TABLE") { 
    var headings = this.tbl.tHead.rows[0].cells; 
    for (var i = 0; headings[i]; i++) { 
      if (headings[i].className.match(/asc|dsc/)) { 
        this.lastSortedTh = headings[i]; 
      } 
    } 
    this.makeSortable(); 
  } 
} 
TableSort.prototype.makeSortable = function() { 
  var headings = this.tbl.tHead.rows[0].cells; 
  for (var i = 0; headings[i]; i++) { 
    headings[i].cIdx = i; 
    var a = document.createElement("a"); 
    a.href = "#"; 
    a.innerHTML = headings[i].innerHTML; 
    a.onclick = function(that) { 
      return function() { 
        that.sortCol(this); 
        return false; 
      } 
    }(this); 
    headings[i].innerHTML = ""; 
    headings[i].appendChild(a); 
  } 
} 
TableSort.prototype.sortCol = function(el) { 
  var rows = this.tbl.rows; 
  var alpha = [], numeric = []; 
  var aIdx = 0, nIdx = 0; 
  var th = el.parentNode; 
  var cellIndex = th.cIdx; 
 
  for (var i = 1; rows[i]; i++) { 
    var cell = rows[i].cells[cellIndex]; 
    var content = cell.textContent ? cell.textContent : cell.innerText; 
    var num = content.replace(/(\$|\,|\s)/g, ""); 
    if (parseFloat(num) == num) { 
      numeric[nIdx++] = { 
        value : Number(num), 
        row : rows[i] 
      } 
    } else { 
      alpha[aIdx++] = { 
        value : content, 
        row : rows[i] 
      } 
    } 
  } 
  function bubbleSort(arr, dir) { 
    var start, end; 
    if (dir === 1) { 
      start = 0; 
      end = arr.length; 
    } else if (dir === -1) { 
      start = arr.length - 1; 
      end = -1; 
    } 
    var unsorted = true; 
    while (unsorted) { 
      unsorted = false; 
      for (var i = start; i != end; i = i + dir) { 
        if (arr[i + dir] && arr[i].value > arr[i + dir].value) { 
          var temp = arr[i]; 
          arr[i] = arr[i + dir]; 
          arr[i + dir] = temp; 
          unsorted = true; 
        } 
      } 
    } 
    return arr; 
  } 
 
  var col = [], top, bottom; 
  if (th.className.match("asc")) { 
    top = bubbleSort(alpha, -1); 
    bottom = bubbleSort(numeric, -1); 
    th.className = th.className.replace(/asc/, "dsc"); 
  } else { 
    top = bubbleSort(numeric, 1); 
    bottom = bubbleSort(alpha, 1); 
    if (th.className.match("dsc")) { 
      th.className = th.className.replace(/dsc/, "asc"); 
    } else { 
      th.className += "asc"; 
    } 
  } 
  if (this.lastSortedTh && th != this.lastSortedTh) { 
    this.lastSortedTh.className = this.lastSortedTh.className.replace( 
        /dsc|asc/g, ""); 
  } 
  this.lastSortedTh = th; 
  col = top.concat(bottom); 
  var tBody = this.tbl.tBodies[0]; 
  for (var i = 0; col[i]; i++) { 
    tBody.appendChild(col[i].row); 
  } 
} 
function fn() { 
 
  var sales = document.getElementById('sales'); 
  var sortTable = new TableSort('sales'); 
} 
</script> 
</body> 
</html> 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# tablesort.js表格排序  # tablesort.js表格排序插件  # js表格排序插件  # javascript sort()对数组中的元素进行排序详解  # Elementui表格组件+sortablejs实现行拖拽排序的示例代码  # JS简单数组排序操作示例【sort方法】  # JS拖拽排序插件Sortable.js用法实例分析  # jQuery实现使用sort方法对json数据排序的方法  # 基于js 各种排序方法和sort方法的区别(详解)  # JavaScript中数组Array.sort()排序方法详解  # Sortable.js拖拽排序使用方法解析  # JS sort排序详细使用方法示例解析  # 大家分享  # 具体内容  # 大家多多  # td  # align  # sales  # tr  # id  # summary  # center  # body  # top  # abc  # left  # color  # afd  # bottom  # background  # tbody  # col 


相关文章: 攀枝花网站建设,攀枝花营业执照网上怎么年审?  如何在服务器上三步完成建站并提升流量?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何通过FTP空间快速搭建安全高效网站?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  贸易公司网站制作流程,出口贸易网站设计怎么做?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  如何生成腾讯云建站专用兑换码?  常州自助建站费用包含哪些项目?  常州自助建站工具推荐:低成本搭建与模板选择技巧  如何制作一个表白网站视频,关于勇敢表白的小标题?  制作营销网站公司,淘特是干什么用的?  微信h5制作网站有哪些,免费微信H5页面制作工具?  小建面朝正北,A点实际方位是否存在偏差?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  电商网站制作公司有哪些,1688网是什么意思?  C#怎么使用委托和事件 C# delegate与event编程方法  如何在云主机上快速搭建网站?  如何用IIS7快速搭建并优化网站站点?  高端建站三要素:定制模板、企业官网与响应式设计优化  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何撰写建站申请书?关键要点有哪些?  建站之星安装后如何配置SEO及设计样式?  如何在云主机快速搭建网站站点?  建站主机系统SEO优化与智能配置核心关键词操作指南  如何用VPS主机快速搭建个人网站?  网站制作企业,网站的banner和导航栏是指什么?  内部网站制作流程,如何建立公司内部网站?  简历在线制作网站免费版,如何创建个人简历?  如何快速生成专业多端适配建站电话?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  网站按钮制作软件,如何实现网页中按钮的自动点击?  定制建站策划方案_专业建站与网站建设方案一站式指南  网页设计网站制作软件,microsoft office哪个可以创建网页?  代购小票制作网站有哪些,购物小票的简要说明?  广平建站公司哪家专业可靠?如何选择?  网站制作免费,什么网站能看正片电影?  如何获取上海专业网站定制建站电话?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  专业商城网站制作公司有哪些,pi商城官网是哪个?  高防服务器租用指南:配置选择与快速部署攻略  微信小程序 五星评分(包括半颗星评分)实例代码  网站制作需要会哪些技术,建立一个网站要花费多少?  如何获取免费开源的自助建站系统源码? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。