javascript 二维排序表格代码

效果图如下:

功能如下:
1.排序功能:单击行表头或列表头则进行正序排序;若再次单击,则进行逆序;
2.修改功能:双击某个单元格,则可进行输入操作,当输入框失去焦点时,则新数据被保存;
3.随机功能:每次刷新页面,表格中的数据都不一样;
效果图:
图片 1
完整源码如下:

图片 2

二维排序表格

图片 3

二维排序表格

Demo演示地址:点击这里

  列1 列2 列3 列4 列5 列6
行1            
行2            
行3            
行4            
行5            

主要的JS代码如下:

说明:
1.排序功能:单击行表头或列表头则进行正序排序;若再次单击,则进行逆序;
2.修改功能:双击某个单元格,则可进行输入操作,当输入框失去焦点时,则新数据被保存;
3.随机功能:每次刷新页面,表格中的数据都不一样;

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();
  };
};

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

本文由美洲杯赌球发布于计算机教程,转载请注明出处:javascript 二维排序表格代码

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。