javascript小练习之给表格中数据排序

需求:点击表头,对表格中数据进行排序。

基本思路:

 1.获取表格中所有行对象;

2.将行对象存入数组,并对数组进行排序;

3.将排完序的数组中数据重新存入表格中;

实例效果:

 排序前:

 

排序后:

 

<html>
	<head>
		<link rel="stylesheet" href="tableData.css" />
		
		<script type="text/javascript">
			/*
			表格按照年龄排序:
				1.每个人的信息是一行
					①先将行去除,临时存入数组中
				2.对数组中的行对象的一个单元格进行排序
				3.将排序后的对象重新存入表格中
			*/
			
			function sortData(){
				//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];
				}	
				
				//3.对数组中的数据进行排序
				sort(arr);
				
				var tbNode=tabNode.childNodes[0];
// 				alert(tbNode.nodeName);
				
				//4.将排完序的数组存放如表格中
				for(var x=0;x<arr.length;x++){
					//append是将数据往尾部添加
					tbNode.appendChild(arr[x]);							
					
				}
							
			}
			
			function sort(arr){
				for(var x=0;x<arr.length;x++){
					for(var y=x+1;y<arr.length;y++){
						if(arr[x].cells[1].innerHTML>arr[y].cells[1].innerHTML){
							var temp = arr[x];
							arr[x]=arr[y];
							arr[y]=temp;
						}
					}
				}
			
			}
			
		</script>
		
	</head>

	<body>
		<table>
		<tr>
			<th>姓名</th>
			<th><a href="javascript:void(0)" οnclick="sortData()">年龄</a></th>
			<th>地址</th>
		</tr>
		
		<tr>
			<td>赵倩</td>
			<td>20</td>
			<td>西安</td>
		</tr>

		<tr>
			<td>张三</td>
			<td>30</td>
			<td>北京</td>
		</tr>
				
		<tr>
			<td>李四</td>
			<td>33</td>
			<td>上海</td>
		</tr>	
		
		<tr>
			<td>王曦</td>
			<td>18</td>
			<td>深圳</td>
		</tr>	
		</table>
	
	</body>
</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值