1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > js表格排序实例详解(支持int float date string四种数据类型)

js表格排序实例详解(支持int float date string四种数据类型)

时间:2020-12-21 23:39:15

相关推荐

js表格排序实例详解(支持int float date string四种数据类型)

web前端|js教程

javascript,支持,详解

web前端-js教程本文实例讲述了js表格排序的方法。分享给大家供大家参考。具体如下:

微信棋牌小程序源码,ubuntu安装联网吗,查看tomcat访问量统计,爬虫爱心代码,php怎么固定每行多少字,seo入门免费lzw

SortTable2var k=0;/**//**************************************************************************排序的主方法,有三个形参,STableTd,iCol,sDataType分别为需要排序的表格ID,需要排序的表格列号,所在列的数据类型(支持int,float,date,string四种数据类型)**************************************************************************/function sortTable(sTableId,iCol,sDataType){ var oTable=document.getElementById(sTableId);//获取表格的ID var oTbody=oTable.tBodies[0]; //获取表格的tbody var colDataRows=oTbody.rows; //获取tbody里的所有行的引用 var aTRs=new Array(); //定义aTRs数组用于存放tbody里的行 for(var i=0;i<colDataRows.length;i++) //依次把所有行放如aTRs数组 { aTRs.push(colDataRows[i]); } /**//*********************************************************************** sortCol属性是额外给table添加的属性,用于作顺反两种顺序排序时的判断,区分 首次排序和后面的有序反转 ************************************************************************/ if(oTable.sortCol==iCol) //非首次排序 { aTRs.reverse(); } else //首次排序 { if(k%2==0) //升序 {aTRs.sort(generateCompareTRs(iCol,sDataType)); } else if(k%2==1) //降序 {aTRs.sort(generateCompareTRs1(iCol,sDataType)); } } var oFragment=document.createDocumentFragment(); //创建文档碎片 for(var i=0;i<aTRs.length;i++) //把排序过的aTRs数组成员依次添加到文档碎片 { oFragment.appendChild(aTRs[i]); } oTbody.appendChild(oFragment); //把文档碎片添加到tbody,完成排序后的显示更新 oTable.sortCol=iCol; //把当前列号赋值给sortCol,以此来区分首次排序和非首次排序,//sortCol的默认值为-1};//比较函数,用于两项之间的排序//升序function generateCompareTRs(iCol,sDataType){ return function compareTRs(oTR1,oTR2) { var vValue1=convert(oTR1.cells[iCol].firstChild.nodeValue,sDataType); var vValue2=convert(oTR2.cells[iCol].firstChild.nodeValue,sDataType); if(vValue1vValue2) {return 1; } else {return 0; } };};//降序function generateCompareTRs1(iCol,sDataType){ return function compareTRs(oTR1,oTR2) { var vValue1=convert(oTR1.cells[iCol].firstChild.nodeValue,sDataType); var vValue2=convert(oTR2.cells[iCol].firstChild.nodeValue,sDataType); if(vValue1>vValue2) {return -1; } else if(vValue1<vValue2) {return 1; } else {return 0; } };};//数据类型转换函数function convert(sValue,sDataType){ switch(sDataType) { case "int":return parseInt(sValue); case "float": return parseFloat(sValue); case "date":return new Date(Date.parse(sValue)); default:return sValue.toString(); }};

手机电视日本直播源码,vscode弹cmd框,ubuntu多行命令,tomcat节点标识,sqlite中的外连接,抖音爬虫软件制作方法,app php服务端,铜川网络seo优化,网络墓地网站程序,网页插件开发,jsp的网页模板lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。