js实现表格排序(兼容各浏览器)
2013-05-14 18:13
477 查看
本来表格排序已经写完了,webkit下已经完美呈现,可.....坑爹的 IE ,唉我去了,愣是调了一下午,所以想粘出来给大家瞅瞅,大神请无视....
好了,函数写完了,看看怎么调用吧
将表格设置 ID 如:<table id="t_table">……</table>
简单起见,为排序按钮配置响应时间,当然也可以用document.getElementById("t_table").getElementsByTagName("tr")[0].getElementsByTagName("td")[i].onclick = function () {……}为表格注册事件,选简单的如:
调用上述表格函数:
function sortrows(Table,n){ //参数Table是通过getElementById()获取的表格对象,参数 n 代表按照表格第几列内容排序 var rows = Table.getElementsByTagName("tr"); //rows = Array.prototype.slice.call(rows,1); IE 不兼容,故删之用下面的代替 var k = rows.length; try{ rows = Array.prototype.slice.call(rows); } catch(e){ var ret = []; while(k){ ret[--k] = rows[k]; //Clone数组 } rows = ret; } //至此 已将类数组对象转换成了数组对象 rows = rows.splice(1,rows.length); //去掉表格第一行,因为可能是标题字段等不参与排序 rows.sort(function (row1,row2){ //js排序函数,具体用法可以百度一下 var cell1 = row1.getElementsByTagName("td") ; var cell2 = row2.getElementsByTagName("td") ; var val1 = cell1.innerHTML; //如果有需要可以考虑textContent及innerText方法 var val2 = cell2.innerHTML; return val1.localeCompare(val2); //按汉语拼音排序,可自定义 ^_^ }); Table = document.getElementsByTagName("tbody")[0]; //上网查的兼容IE的table.appendChild代码 ,即:ie中表格不能直接用appendChil方法 for(var i=0;i<rows.length;i++){ Table.appendChild(rows[i]); } }
好了,函数写完了,看看怎么调用吧
将表格设置 ID 如:<table id="t_table">……</table>
简单起见,为排序按钮配置响应时间,当然也可以用document.getElementById("t_table").getElementsByTagName("tr")[0].getElementsByTagName("td")[i].onclick = function () {……}为表格注册事件,选简单的如:
<td style="cursor:pointer" title="课程排序" onclick="ownSort(0)">课程</td> <td style="cursor:pointer" title="教师排序" onclick="ownSort(1)">教师</td> <td style="cursor:pointer" title="时间排序" onclick="ownSort(2)">时间</td> <td style="cursor:pointer" title="地点排序" onclick="ownSort(3)">地点</td> <td style="cursor:pointer" title="班级排序" onclick="ownSort(4)">班级</td>
调用上述表格函数:
function ownSort(m) { var Table = document.getElementById("t_table"); sortrows(Table,m); }
相关文章推荐
- js实现表格中不同单元格内容的替换(不同浏览器的节点属性兼容问题)
- 纯JS实现五子棋游戏兼容各浏览器(附源码)
- 一个JS实现表格可排序
- js实现表格排序
- jquery.webcam.js实现调用摄像头拍照兼容各个浏览器
- 纯JS实现五子棋游戏兼容各浏览器(附源码)
- JS 实现 ajax 异步浏览器兼容问题
- JS 实现表格列排序
- js 静态HTML表格排序功能实现
- 用JS实现渐变效果,兼容各款浏览器
- 用js实现终止浏览器对页面HTML的继续解析即停止解析 兼容firefox
- 简单实现兼容各大浏览器的js复制内容到剪切板
- JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
- 使用Vue.js实现表格的排序和搜索功能
- js 实现文字无缝滚动(图片无缝滚动) 兼容各种浏览器
- js完美实现@提到好友特效(兼容各大浏览器)
- 用js实现的图片在浏览器里面来回滚动效果 <兼容ie和ff>
- js实现浏览器兼容复制功能
- JavaScript 实现命名空间(namespace)的最佳方案——兼容主流的定义类(class)的方法,兼容所有浏览器,支持用JSDuck生成文档
- html 复制标签内文本的按钮的 js 实现【学习过程】【浏览器兼容】