本文所实现的表格排序大致可以分为以下几个步骤:
1、取得要排序的所有行,将其引用push到一个数组中
2、根据要排序的行的情况编写数组排序时使用的比较函数
3、对包含所有行引用的数组进行排序
4、将排序后的数组按照指定的顺序把数组所引用的行重新写回DOM
如果您对使用DOM操作表格还不太熟悉,您可以参考一下《使用DOM编写浏览器兼容的Table操作》,如果您对数组的排序还不太熟悉,可以参考一下《数组排序以及在汉字排序中localeCompare()方法的使用》,因为使用DOM操作表格和数组排序是表格排序的基础。
先看一下我们示例用的代码,本文会按照上面提到的步骤一步一步的分析:
1 var asc = true;
2 var arrayTr = []; //存放所有要排序的行引用的容器
3 function sortTable(){
4 //取得所有要排序的行
5 var oTable = document.getElementById("oTable");
6 var oTBody = oTable.tBodies[0];
7 var allTr = oTBody.rows;
8 //将要排序的行放入数组以排序
9 for(var i=0;i
11 }
12 //如果是升序
13 if(asc){
14 arrayTr.sort(compareFunc);
15 oTable.rows[0].title = "点击降序排列表格";
16 asc = false;
17 } else {
18 //如果是降序
19 arrayTr.reverse();
20 oTable.rows[0].title = "点击升序排列表格";
21 asc = true;
22 }
23 //将排过续的行按照数序重写回DOM
24 var oFragment = document.createDocumentFragment();
25 for(var j =0; j < arrayTr.length;j++){
26 oFragment.appendChild(arrayTr[j]);
27 }
28 oTBody.appendChild(oFragment);
29 } 程序的5--11行实现了我们所说的第一步,这里有两个需要说明的地方,一是我们在HTML中使用了和
以上就是JavaScript学习笔记(4)表格排序的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!