js实现成绩排序

在页面上有如下表格,当点击成绩时,所有行数根据成绩进行从低到高排序,再点击则从高到低排序,请用javascript实现以上功能。

姓名性别成绩
张三77
李四87
王五未知50

js代码如下所示:

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>成绩排序</title>
</head>
<body>
	<table id="tableSort">
		<thead>
			<tr>
				<th>姓名</th>
				<th>性别</th>
				<th id="mark">成绩</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td>张三</td>
				<td>男</td>
				<td>77</td>
			</tr>
			<tr>
				<td>李四</td>
				<td>女</td>
				<td>87</td>
			</tr>
			<tr>
				<td>王五</td>
				<td>未知</td>
				<td>50</td>
			</tr>			
		</tbody>	
	</table>
	<script type="text/javascript">
		var tbody = document.getElementById('tableSort').tBodies[0];             //获取tbody
		var mark  =document.getElementById('tableSort').tHead.rows[0].cells[2];  // 获取成绩元素
		var flag  =1;
		mark.οnclick=function(){                                                 //点击成绩单元格,进行排序
			var arr=[];
			for (var i = 0,len=tbody.rows.length; i < len; i++) {                //将每一行的数据存放进数组arr中
                    arr.push(tbody.rows[i]);
            }
             arr.sort(function(a,b){                                            //进行成绩排序
                 var sort=flag*(a.cells[2].innerHTML - b.cells[2].innerHTML);  
                 return sort;       
            }); 
            flag=-flag; 
			for (var i = 0,len=tbody.rows.length; i < len; i++) {              //排序后,重新添加进表格
                    tbody.appendChild(arr[i]);
            }
		}
	</script>
</body>
</html>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值