标题 | js表头排序实现方法 |
内容 | 这篇文章主要介绍了js表头排序实现方法,涉及数字、字母、字符串比较及排序等操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了js表头排序实现方法。分享给大家供大家参考。 具体实现方法如下: 代码如下: <script type=text/javascript> //是否递减排序 var isdescending = true; /***************************************** * 要排序的行必须放到<tbody></tbody>标签中 * tableid:排序表格id * colno:排序的列号,即第几列,从0开始 * startrowno:排序的开始行号,从0开始 * sortlength:要排序的行数, * type:排序列的类型 */ function sort(tableid, colno ,startrowno, sortlength, type) { //如果要排序的行数是1或是0,则不对其进行排序操作 if(sortlength<=1){ return; } var currtable = document.getelementbyid(tableid); var theheader = currtable.outerhtml.substring(0, currtable.outerhtml.indexof('<tbody>')+7) var thefooter = currtable.outerhtml.substring(currtable.outerhtml.indexof('</tbody>')-8); //这里的行数是去掉表头表头行和表位行的行数 var therows = new array(sortlength); //对表中的数据进行循环 for(i=startrowno; i<sortlength+startrowno; i++) { therows[i-startrowno] = new array(currtable.rows[i].cells[colno].innertext.tolowercase(), currtable.rows[i].outerhtml); } if(type.touppercase()=='number') { therows.sort(comparenumber); } else if(type.touppercase()=='date') therows.sort(comparedate); else if(type.touppercase()=='string') therows.sort(comparestring); var tableinfo='' for(j=0; j<therows.length; j++) { tableinfo+=therows[j][1]; } isdescending = !isdescending; currtable.outerhtml= theheader + tableinfo +thefooter; return ; } //对数字进行比较 function comparenumber(x, y) { //对货币格式的数据进行转化 a = x[0].excludechars(,).trim(); b = y[0].excludechars(,).trim(); if(a==){a=0;} if(b==){b=0;} if(isdescending) { return parsefloat(b) - parsefloat(a); } else { return parsefloat(a) - parsefloat(b); } } //对字符串进行比较 function comparestring(x, y) { if(isdescending) { if(x[0]>y[0]) return -1; else if(x[0]<y[0]) return 1; else return 0; } else { if(x[0]<y[0]) return -1; else if(x[0]>y[0]) return 1; else return 0; } } //对时间进行比较 function comparedate(x,y){ var arr=x[0].split(-); var starttime=new date(arr[0],arr[1],arr[2]); var starttimes=starttime.gettime(); var arrs=y[0].split(-); var lktime=new date(arrs[0],arrs[1],arrs[2]); var lktimes=lktime.gettime(); if(isdescending) { return lktimes - starttimes; } else { return starttimes - lktimes; } } //去除字符串中所有指定的字符串 string.prototype.excludechars = function(chars){ var matching = new regexp(chars , g) ; return this.replace(matching , '') ; } </script> 希望本文所述对大家的javascript程序设计有所帮助。 |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。