DHTML技术综合演示---示例:表格排序
来源:互联网 发布:域名查询腾讯 编辑:程序博客网 时间:2024/05/30 12:29
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>>DHTML技术综合演示---示例:表格排序</title>
<style type="text/css">
table {
border: #8080ff solid 1px;
width: 500px;
border-collapse: collapse;
}
table th {
border: #ff0000 solid 1px;
padding: 5px;
background-color: rgb(200, 200, 200);
}
table td {
border: #ff0000 solid 1px;
padding: 5px;
}
.one{
background-color:#ffff80;
}
.two{
background-color:#0080ff;
}
.over{
background-color:#80ffff;
}
</style>
</head>
<body>
<script type="text/javascript">
var bgColor;
function trColor(){
var oTable = document.getElementById("tab1");
for(var i=1;i<oTable.rows.length;i++){//第一栏不用修改
var oTr = oTable.rows[i];
if(i%2==1){
oTr.className = "one";
}else{
oTr.className="two";
};
//给当前行注册事件
oTr.onmouseover =function(){//此处要用this,
bgColor = this.className;
this.className = "over";
};
oTr.onmouseout =function(){
this.className=bgColor;
};
}
};
onload = trColor;
var isAsend = true;
function sortTable(oANode){
var oTableNode = document.getElementById("tab1");
var trRows = oTableNode.rows;
//分析:在内存中排序比较合适,因此方案:
//把行集合trRows备份到一个数组,对数组进行排序,
//最后再把排序后的数组添加到表格
//备份
var trArr=[];
for(var i=0;i<trRows.length;i++){
trArr[i-1] = trRows[i];
}
//数组排序
sortArr(trArr);
//把排序后的行数组添加回表格中 并 更改表头<th>中的文本
if(isAsend){
for(var i=0;i<trArr.length;i++){
trArr[i].parentNode.appendChild(trArr[i]);
}
oANode.innerHTML="年龄↑";
}else{
for(var i=trArr.length-1;i>=0;i--){
trArr[i].parentNode.appendChild(trArr[i]);
}
oANode.innerHTML="年龄↓";
}
isAsend=!isAsend;
trColor();
function sortArr(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=i+1; j<arr.length; j++){
if( parseInt(arr[i].cells[1].innerText) > parseInt(arr[j].cells[1].innerText) ){
var temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
}
</script>
<table id="tab1">
<tr>
<th>姓名</th>
<th><a href="javascript:void(0);" onclick="sortTable(this);">年龄</a></th>
<th>地址</th>
</tr>
<tr>
<td>张三</td>
<td>20</td>
<td>湖南</td>
</tr>
<tr>
<td>李四</td>
<td>22</td>
<td>湖南</td>
</tr>
<tr>
<td>Jack</td>
<td>19</td>
<td>北京</td>
</tr>
<tr>
<td>Alice</td>
<td>23</td>
<td>New York</td>
</tr>
<tr>
<td>赵子龙</td>
<td>21</td>
<td>常山</td>
</tr>
<tr>
<td>刘备</td>
<td>24</td>
<td>上海</td>
</tr>
<tr>
<td>张飞</td>
<td>24</td>
<td>上海</td>
</tr>
<tr>
<td>关羽</td>
<td>24</td>
<td>上海</td>
</tr>
</table>
</body>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>>DHTML技术综合演示---示例:表格排序</title>
<style type="text/css">
table {
border: #8080ff solid 1px;
width: 500px;
border-collapse: collapse;
}
table th {
border: #ff0000 solid 1px;
padding: 5px;
background-color: rgb(200, 200, 200);
}
table td {
border: #ff0000 solid 1px;
padding: 5px;
}
.one{
background-color:#ffff80;
}
.two{
background-color:#0080ff;
}
.over{
background-color:#80ffff;
}
</style>
</head>
<body>
<script type="text/javascript">
var bgColor;
function trColor(){
var oTable = document.getElementById("tab1");
for(var i=1;i<oTable.rows.length;i++){//第一栏不用修改
var oTr = oTable.rows[i];
if(i%2==1){
oTr.className = "one";
}else{
oTr.className="two";
};
//给当前行注册事件
oTr.onmouseover =function(){//此处要用this,
bgColor = this.className;
this.className = "over";
};
oTr.onmouseout =function(){
this.className=bgColor;
};
}
};
onload = trColor;
var isAsend = true;
function sortTable(oANode){
var oTableNode = document.getElementById("tab1");
var trRows = oTableNode.rows;
//分析:在内存中排序比较合适,因此方案:
//把行集合trRows备份到一个数组,对数组进行排序,
//最后再把排序后的数组添加到表格
//备份
var trArr=[];
for(var i=0;i<trRows.length;i++){
trArr[i-1] = trRows[i];
}
//数组排序
sortArr(trArr);
//把排序后的行数组添加回表格中 并 更改表头<th>中的文本
if(isAsend){
for(var i=0;i<trArr.length;i++){
trArr[i].parentNode.appendChild(trArr[i]);
}
oANode.innerHTML="年龄↑";
}else{
for(var i=trArr.length-1;i>=0;i--){
trArr[i].parentNode.appendChild(trArr[i]);
}
oANode.innerHTML="年龄↓";
}
isAsend=!isAsend;
trColor();
function sortArr(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=i+1; j<arr.length; j++){
if( parseInt(arr[i].cells[1].innerText) > parseInt(arr[j].cells[1].innerText) ){
var temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
}
</script>
<table id="tab1">
<tr>
<th>姓名</th>
<th><a href="javascript:void(0);" onclick="sortTable(this);">年龄</a></th>
<th>地址</th>
</tr>
<tr>
<td>张三</td>
<td>20</td>
<td>湖南</td>
</tr>
<tr>
<td>李四</td>
<td>22</td>
<td>湖南</td>
</tr>
<tr>
<td>Jack</td>
<td>19</td>
<td>北京</td>
</tr>
<tr>
<td>Alice</td>
<td>23</td>
<td>New York</td>
</tr>
<tr>
<td>赵子龙</td>
<td>21</td>
<td>常山</td>
</tr>
<tr>
<td>刘备</td>
<td>24</td>
<td>上海</td>
</tr>
<tr>
<td>张飞</td>
<td>24</td>
<td>上海</td>
</tr>
<tr>
<td>关羽</td>
<td>24</td>
<td>上海</td>
</tr>
</table>
</body>
</html>\
原表格
正序
、
反序
0 0
- DHTML技术综合演示---示例:表格排序
- DHTML技术综合演示---示例:表格创建2
- DHTML技术综合演示---示例:表格删除行、列
- DHTML技术综合演示---示例:表格行间隔显示
- DHTML技术综合演示---示例:下拉风格的菜单条2--用表格封装的
- DHTML技术综合演示---示例:下拉风格的菜单条
- DHTML技术演示---动态设置表格行间隔显示、表格排序、鼠标悬停样式改变
- DHTML技术演示---动态创建表格、删除表格(详细的解释,适合初学者)
- JavaScript-DHTML技术演示(1)
- JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式
- JavaScript---网络编程(9-2)--DHTML技术演示(2-2)-表格加强
- DHTML技术演示---新闻字体(一)
- DHTML技术演示---下拉菜单技术演示2---二级联动和添加附件(文件)技术演示
- DHTML技术演示---selcet的使用(级联技术)
- Tapstry3的追忆------综合示例演示
- 追忆Tapstry4.0------综合示例演示
- JavaScript---网络编程(8)-DHTML技术演示(1)
- JavaScript---网络编程(10)--DHTML技术演示(3)-多选框
- socket + vue + canvas实践,你画我猜(二)
- Android四大启动模式
- centos7 设置LANG后中文依然乱码
- python 常用 uiautomator语法
- 如何获取GPS状态
- DHTML技术综合演示---示例:表格排序
- c++ 继承
- CRC校验码的理解+CRC校验码算法代码
- unity5 资源提取工具
- 设计模式之工厂模式
- android中scrollview嵌套listview的问题
- AngularJS学习笔记--$resource的应用
- MyEcllipse 2014 的一些快捷键整理
- JavaScript中的Math.ceil()、Math.floor()、Math.round()详解