javascript 实现简单的table排序及table操作练习


Posted in Javascript onDecember 28, 2012

在这个列子中,练习了table的操作,主要有:tBodies、rows、cells,还有有关数组的排序方法:sort
先上代码:

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>table排序</title> 
</head> 
<body> 
<table id="tableTest" width="400" border="1"> 
<tbody> 
<tr> 
<td>2</td> 
<td>bbb</td> 
<td> </td> 
<td> </td> 
</tr> 
<tr> 
<td>5</td> 
<td>eee</td> 
<td> </td> 
<td> </td> 
</tr> 
<tr> 
<td>3</td> 
<td>ccc</td> 
<td> </td> 
<td> </td> 
</tr> 
<tr> 
<td>4</td> 
<td>ddd</td> 
<td> </td> 
<td> </td> 
</tr> 
<tr> 
<td>1</td> 
<td>aaa</td> 
<td> </td> 
<td> </td> 
</tr> 
</tbody> 
</table> 
<input type="button" id="sort" value="表格排序" /> 
<script> 
window.onload = function () { 
var oTable = document.getElementById('tableTest'); 
var oTbody = oTable.tBodies[0]; 
var oBtn = document.getElementById('sort'); 
var arr = [];//用来存放每一个tr 
var isAsc = true;//用来判断升序,还是降序 
oBtn.onclick = function () { 
for (var i = 0; i < oTbody.rows.length; i++ ) { 
arr[i] = oTbody.rows[i];//这里是把每一个tr存放到一个数组,而不是排序的依据(这里是cells[0].innerHTML) 
} 
//数组根据cells[0].innerHTML来排序 
arr.sort(function (td1, td2){ 
if(isAsc) { 
return parseInt(td1.cells[0].innerHTML) - parseInt(td2.cells[0].innerHTML); 
} else { 
return parseInt(td2.cells[0].innerHTML) - parseInt(td1.cells[0].innerHTML); 
} 
}); 
//把排序后的tr 重新插入tbody 
for(var j =0; j < arr.length; j++ ) { 
oTbody.appendChild(arr[j]); 
} 
//判断升序,降序 
isAsc = !isAsc; 
} 
} 
</script> 
</body> 
</html>

下面??乱恍┫喙氐闹?兜悖
我们都知道,平时操作一般的DOM可以getElementsByTagName、getElementById云云来获取相关节点
在table中当然这种方法也可以实现
显然,这样操作会很麻烦
所以,对于table我们可以用另一套方法、属性来操作:
在这之前,先说一些有关table的东东:
平时写table相信很多人会直接这么写:
<table id="tableTest" width="400" border="1"> 
<tr> 
<td>3</td> 
<td>ccc</td> 
<td> </td> 
<td> </td> 
</tr> 
</table>

如果,你firebug查看一下代码,你会发现会多出一个tbody来,明明源代码是没有的
这是为毛?!
其实,table的真正结构是:table中也包括:thead、tbody、tfoot,其中tbody是可以多个的
回到主题上来:
javascript中有关table元素的属性、方法:
caption:保存着对<caption>元素(如果有)的指针
tBodies:是一个<tbody>元素的HTMLCollection
tFoot:保存着对<tfoot>元素(如果有)的指针
tHead:保存着对<thead>元素(如果有)的指针
rows:是一个表格中所有行的HTMLCollection
createTHead():创建<thead>元素,将其放到表格中,并返回引用
createTFoot():创建<tfoot>元素,将其放到表格中,并返回引用
createCaption():创建<caption>元素,将其放到表格中,并返回引用
deleteTHead():删除<thead>元素
deleteTFoot():删除<tfoot>元素
deleteCaption():删除<caption>元素
deleteRow(pos):删除指定位置行
insertRow(pos):向rows集合中指定位置插入一个行
有关tbody的属性、方法
rows:保存着tbody所有行的HTMLCollection
deleteRow(pos):删除指定位置的行
insertRow(pos):向rows的集合中的指定位置插入一行,并返回对新插入行的引用
有关tr的属性、方法
cells:保存着tr所有td(单元格)的HTMLCollection
deleteCell(pos):删除指定位置的单元格
insetCell(pos):向cells的集合中的指定位置插入一个单元格,并返回对该单元格的引用
OK,就说这些………………
Javascript 相关文章推荐
ExtJs默认的字体大小改变的几种方法(自己整理)
Apr 18 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
Jul 08 Javascript
jQuery实现的原图对比窗帘效果
Jun 15 Javascript
document.forms用法示例介绍
Jun 26 Javascript
JavaScript定义类和对象的方法
Nov 26 Javascript
node.js中的fs.link方法使用说明
Dec 15 Javascript
JavaScript中的fontsize()方法使用详解
Jun 08 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
Dec 12 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
Jun 13 Javascript
layer弹窗插件操作方法详解
May 19 Javascript
Vue.js实例方法之生命周期详解
Jul 03 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 10 Javascript
jQuery 选择器项目实例分析及实现代码
Dec 28 #Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 #Javascript
JS声明变量背后的编译原理剖析
Dec 28 #Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
Dec 28 #Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
Dec 28 #Javascript
web性能优化之javascript性能调优
Dec 28 #Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
Dec 28 #Javascript
You might like
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP读取汉字的点阵数据
2015/06/22 PHP
PHP的反射机制实例详解
2017/03/29 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
Python中的下划线详解
2015/06/24 Python
python Django框架实现自定义表单提交
2016/03/25 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
python 模拟登录B站的示例代码
2020/12/15 Python
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
趣味活动策划方案
2014/02/08 职场文书
保护环境建议书
2014/03/12 职场文书
企业宗旨标语
2014/06/10 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
优秀党员推荐材料
2014/12/18 职场文书
2016年学校招生广告语
2016/01/28 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
HTML中的表格元素介绍
2022/02/28 HTML / CSS