之前已经讲过什么是DHMTL,这个我就不多讲了,稍后我会放一个关于DHTML的介绍页给大家,大家可以去看看。
相关DHTML文章:关于DHTML的一些简单介绍
这几天一直在练习DHTML的一些对象、方法、属性等等的操作,反正就感觉以前很向往的东西,终于现在能自己去亲自实现了,感觉还是非常高兴的。
其实在写这个程序的时候大致就会用到HTML+CSS+DOM+JavaScript。那么接下来我一一为大家呈现。
首先我定义了一段CSS代码,如下:
<style type="text/css">
th a:link,th a:visited{color:#fff;text-decoration:none;} //定义鼠标点击和点击后的样式
table{width:500px;border-collapse:collapse;}
table td{border:#669933 1px solid;padding:10px;text-align:center;}
table th{border:#669933 1px solid;padding:10px;background:#99cc99;}
</style>
然后定义了一段HTML代码
<table id="info"> <tr> <th>姓名</th> <th><a href="javascript:void(0)" onclick="arrDemo()">年龄</a></th> <th>城市</th> </tr> <tr> <td>张三</td> <td>26</td> <td>上海</td> </tr> <tr> <td>李四</td> <td>23</td> <td>北京</td> </tr> <tr> <td>王五</td> <td>28</td> <td>重庆</td> </tr> <tr> <td>赵六</td> <td>27</td> <td>成都</td> </tr> <tr> <td>田七</td> <td>38</td> <td>沈阳</td> </tr> <tr> <td>周八</td> <td>30</td> <td>南昌</td> </tr> <tr> <td>方九</td> <td>44</td> <td>和田</td> </tr> </table>
那么要达到下图的效果,就必须要写出一段js代码。
先看看效果图:

那么对于JS代码如下:
<script type="text/javascript">
var flag = true;
function arrDemo(){
var oTabNode = document.getElementById("info");
var collTrNodes = oTabNode.rows;
//定义一个临时容器,存储需要排序的行对象
var trArr = [];
//遍历原行集合,并将需要排序的行对象存储到临时容器中。
for(var x=1;x<collTrNodes.length;x++){
trArr[x-1] = collTrNodes[x];
}
//对临时容器排个序。
mySort(trArr);
//将排序完的行对象添加回表格。
if(flag){
for(var x=0;x<trArr.length;x++){
trArr[x].parentNode.appendChild(trArr[x]);
}
flag = false;
}else{
for(var x=trArr.length-1;x>=0;x--){
trArr[x].parentNode.appendChild(trArr[x]);
}
flag = true;
}
function mySort(arr){
for(var x=0;x<arr.length-1;x++){
for(var y=x+1;y<arr.length;y++){
if(parseInt(arr[x].cells[1].innerHTML)>parseInt(arr[y].cells[1].innerHTML)){
//arr[x].swapNode(arr[y]);//这个方法有时能用,有时不能用。
var temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
}
</script>
那么这就完成了表格的排序,可以是从小到大排序,再次点击将从大到小排序,当然,你也可以根据你自己的需要来进行更改代码。
演示地址:http://www.asni.cn/wp-content/uploads/2014/08/tabledemo.html
智言个人博客







加载什么代码呢,打开很卡的样子。
请问一下,你是什么网络的线路?如果代码加载很慢,请直接打开演示页面即可观看到效果。