单元格排序+行颜色变化(DHTML)

单元格排序   和行颜色间隔显示及高亮

<!DOCTYPE html>
<html>
<head>
<title>sortTab.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<script type="text/javascript">
	/* 表格中按年龄顺序进行排序
	
	 1.每一个人的信息是一行。
	 那么先将行都取出,临时存入到数组中。
	 2.并对数组中的行对象的其中一个单元格的数据进行排序
	 3.将排序后的行对象重新添加回表格对象中。
	 */
	var b = true;
	function sorttab() {
		//1.获取表格中的所有行对象
		var tabNode = document.getElementsByTagName("table")[0];
		var trs = tabNode.rows;

		//2.定义临时容器,将表格中需要参与排序的行对象排序
		var arr = new Array();//临时容器里存入的都是表格行对象的引用
		for ( var x = 1; x < trs.length; x++) {

			arr[x - 1] = trs[x];
		}
		sort(arr);
		var tbdNode = tabNode.childNodes[1];
		//alert(tbdNode.nodeName);TBODY

		if (b) {
			for ( var x = 0; x < arr.length; x++) {
				//alert(arr[x].cells[1].innerText);
				tbdNode.appendChild(arr[x]);
			}
			b = false;
		} else {
			for ( var x = arr.length - 1; x >= 0; x--) {
				//alert(arr[x].cells[1].innerText);
				tbdNode.appendChild(arr[x]);
			}
			b = true;
		}
	}

	function sort(arr) {
		for ( var x = 0; x < arr.length; x++) {
			for ( var y = x + 1; y < arr.length; y++) {
				if (parseInt(arr[x].cells[1].innerText) > parseInt(arr[y].cells[1].innerText)) {
					var temp = arr[x];
					arr[x] = arr[y];
					arr[y] = temp;
				}
			}
		}

	}
</script>


<style type="text/css">
table {
	font-family: verdana, arial, sans-serif;
	font-size: 36px;
	color: #333333;
	border-width: 1px;
	border-color: #666666;
	border-collapse: collapse;
}

table th {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #666666;
	background-color: #dedede;
}

table td {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #666666;
	background-color: #ffffff;
}
</style>
</head>
<body>
	<table>
		<tr>
			<th>姓名</th>
			<th><a href="javascript:void(0)" οnclick="sorttab()">年龄</a></th>
			<th>地址</th>
		</tr>
		<tr>
			<td>张三</td>
			<td>332</td>
			<td>日本</td>
		</tr>
		<tr>
			<td>李四</td>
			<td>221</td>
			<td>中国</td>
		</tr>
		<tr>
			<td>王五</td>
			<td>2511</td>
			<td>美国</td>
		</tr>
	</table>


</body>
</html>

行颜色间隔显示及高亮

<!DOCTYPE html>
<html>
<head>
<title>trColor.html</title>


<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript">
	//行颜色间隔显示
	function trcolor() {
		var tabNode = document.getElementsByTagName("table")[0];

		var trs = tabNode.rows;

		for ( var x = 1; x < trs.length; x++) {

			if (x % 2 == 1)
				trs[x].className = "one";
			else
				trs[x].className = "two";
				
		    trs[x].οnmοuseοver=function(){
		       name = this.className;
		       this.className ="over";
		    }
		    trs[x].onmouseout = function(){
		    
		       this.className= name;
		    }
		}
	}

	var name;
	function over(trNode) {
		name = trNode.className;
		trNode.className = "over";
	}
	function out(trNode) {
		trNode.className = name;

	}
	window.onload = trcolor; //页面打开就有了
</script>

</head>
<style type="text/css">
.one {
	background-color: #33FFCC;
}

.two {
	background-color: #FFFF66;
}

.over {
	background-color: #00FF00;
}

table {
	border: 1px solid #B1CDE3;
	padding: 0;
	margin: 0 auto;
	border-collapse: collapse;
	font-size: 36px;
}
</style>
<body>
	<table>
		  <tr>
			<!-- <tr οnmοuseοver="over(this)" οnmοuseοut="out(this)"> -->
			<th>姓名</th>
			<th>年龄</th>
			<th>地址</th>
		</tr>
		<tr>
			<td>张三</td>
			<td>332</td>
			<td>日本</td>
		</tr>
		<tr>
			<td>李四</td>
			<td>221</td>
			<td>中国</td>
		</tr>
		<tr>
			<td>王五</td>
			<td>2511</td>
			<td>美国</td>
		</tr>
		<tr>
			<td>王五</td>
			<td>2511</td>
			<td>美国</td>
		</tr>

		<tr>
			<td>王五</td>
			<td>2511</td>
			<td>美国</td>
		</tr>
		<tr>
			<td>王五</td>
			<td>2511</td>
			<td>美国</td>
		</tr>
		<tr>
			<td>王五</td>
			<td>2511</td>
			<td>美国</td>
		</tr>
	</table>
</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值