//为什么直接替换之前的列表(变成了按第一列排序好的列表),而不是将元素加在原列表的末尾? otable.tBodies[0].appendChild(arr[i]);<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input id="btn" type="button" value="排序">
<table id="otable" border="1" cellspacing="0" cellpadding="10" width="100%">
<thead>
<td>ID</td>
<td>name</td>
<td>year</td>
</thead>
<tbody>
<tr>
<td>1</td><td>z</td><td>12</td>
</tr>
<tr>
<td>2</td><td>zhangsan</td><td>2</td>
</tr>
<tr>
<td>6</td><td>lc</td><td>22</td>
</tr>
<tr>
<td>4</td><td>l1yc</td><td>02</td>
</tr>
<tr>
<td>5</td><td>l5yc</td><td>112</td>
</tr>
</tbody>
</table>
<script>
//排序功能
btn.onclick=function () {
var otable=document.getElementById("otable");
var btn=document.getElementById("btn");
var arr=[];
for(var i=0;i<otable.tBodies[0].rows.length;i++){
arr[i]=otable.tBodies[0].rows[i];//每行
}
arr.sort(function (tr1,tr2) {
var n1=parseInt(tr1.cells[0].innerHTML);
var n2=parseInt(tr2.cells[0].innerHTML);
return n1-n2;
});
console.log(arr);
for(var i=0;i<arr.length;i++){
//为什么直接替换之前的列表(变成了按第一列排序好的列表),而不是将元素加在原列表的末尾?
otable.tBodies[0].appendChild(arr[i]);
}
};
</script>
</body>
</html>
3 回答
添加回答
举报
0/150
提交
取消