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 相关文章推荐
jquery 学习之二 属性 文本与值(text,val)
Nov 25 Javascript
将中国标准时间转换成标准格式的代码
Mar 20 Javascript
JavaScript立即执行函数的三种不同写法
Sep 05 Javascript
JavaScript操作Oracle数据库示例
Mar 06 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
javascript冒泡排序小结
Apr 10 Javascript
Ajax的概述与实现过程
Nov 18 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
Vue中封装input组件的实例详解
Oct 17 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 Javascript
解决layui的radio属性或别的属性没显示出来的问题
Sep 26 Javascript
vue中v-model对select的绑定操作
Aug 31 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
php程序员应具有的7种能力小结
2014/11/27 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
js导航菜单(自写)简单大方
2013/03/28 Javascript
理解Javascript闭包
2013/11/01 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
two.js之实现动画效果示例
2017/11/06 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
python logging类库使用例子
2014/11/22 Python
Python字符串中查找子串小技巧
2015/04/10 Python
Python 3中的yield from语法详解
2017/01/18 Python
python连接数据库的方法
2017/10/19 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
南京迈特望C/C++面试题
2012/07/09 面试题
会计电算化个人求职信范文
2014/01/24 职场文书
春节活动策划方案
2014/01/24 职场文书
捐书倡议书
2014/08/29 职场文书
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL
html中两种获取标签内的值的方法
2022/06/16 jQuery
JS实现简单九宫格抽奖
2022/06/28 Javascript
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers