html中的表格数据排序。

html中的表格数据排序。,第1张

<!DOCTYPE HTML>

<html>

<head>

<meta charset="UTF-8" />

<title>main.html</title>

<style type="text/css">

table {

width: 300pxborder : 1px solid black

border-collapse: collapse

border: 1px solid black

}

td {

border: 1px solid black

}

</style>

<script type="text/javascript">

function paiXu ()

{

var tabNode = document.getElementsByTagName ("table")[0]

var trs = tabNode.rows

var arr = new Array

for ( var x = 0x <trs.lengthx++)

{

arr.push (trs[x])

}

sortt (arr)

for ( var x = 0x <arr.lengthx++)

{

tabNode.tBodies[0].appendChild (arr[x])

}

}

function sortt (arr)

{

for ( var x = 0x <arr.lengthx++)

{

for ( var y = x + 1y <arr.lengthy++)

{

if (parseInt (arr[x].cells[1].childNodes[0].nodeValue) <= parseInt (arr[y].cells[1].childNodes[0].nodeValue))

{

var tmp = arr[x]

arr[x] = arr[y]

arr[y] = tmp

}

}

}

}

</script>

</head>

<body>

<input type="button" value="排序" onclick="paiXu()">

<table>

<tr>

<td>小明</td>

<td>23</td>

<td></td>

<td></td>

<td></td>

</tr>

<tr>

<td>小花</td>

<td>21</td>

<td></td>

<td></td>

<td></td>

</tr>

<tr>

<td>小高</td>

<td>12</td>

<td></td>

<td></td>

<td></td>

</tr>

<tr>

<td>小林</td>

<td>25</td>

<td></td>

<td></td>

<td></td>

</tr>

<tr>

<td>小王</td>

<td>35</td>

<td></td>

<td></td>

<td></td>

</tr>

</table>

</body>

</html>

使用for循环,里面使用if else语句。网上有很多实例比如 function sortAge(){//对年龄进行排序,要先进行获得每一行对象,然后对象对象中的第一个(从0 开始)的大小进行排序var tabNode = document.getElementById(tabid) var rows0 = tabNode.rows var rows1 = [] //现将元素拷贝一份出来, 第一行不用排序for (var x = 1x <rows0.lengthx++) {rows1[x - 1] = rows0[x] }for (var x = 0x <rows1.length - 1x++) {//每个元素是行对象for (var y = x + 1y <rows1.lengthy++) {//对每一行的内容进行解析成数字if (parseInt(rows1[x].cells[1].innerHTML) >parseInt(rows1[y].cells[1].innerHTML)) {//alert(aa=+x+:+rows1[x].cells[1].innerHTML) //alert(bb+rows1[y].cells[1].innerHTML) var temp = rows1[x] rows1[x] = rows1[y] rows1[y] = temp }}} /* 点击之后排序,排序之后恢复之前的状态 if (flag){ for (var x = 0x <rows1.lengthx++) {// tabNode.childNodes[0].appendChild(rows[x])//方法一: 不一定兼容rows1[x].parentNode.appendChild(rows1[x]) }}else{ for (var x = 1x <rows0.lengthx++) {// tabNode.childNodes[0].appendChild(rows[x])//方法一: 不一定兼容rows0[x].parentNode.appendChild(rows0[x]) }}flag=!flag*//* 下面的是点之后出现正序和逆序显示 正序和逆序的区别就是appendchild的前后关系而已*/var ageimg=document.getElementById(ageid)if (flag) {for (var x = 0x <rows1.lengthx++) {//排好序之后就从0开始// tabNode.childNodes[0].appendChild(rows[x])//方法一: 不一定兼容rows1[x].parentNode.appendChild(rows1[x]) }ageimg.innerHTML=年龄▲//设置上面的图标 }else{for (var x = rows1.length-1x >=0x--) {// tabNode.childNodes[0].appendChild(rows[x])//方法一: 不一定兼容rows1[x].parentNode.appendChild(rows1[x]) }ageimg.innerHTML=年龄▼}flag=!flag loading()//排序之后还要对颜色重新设置 }

文件的顺序存储结构表示

#define n l00 //假设的文件长度,即待排序的记录数目

typedef int KeyType; //假设的关键字类型

typedef struct{ //记录类型

KeyType key; //关键字项

InfoType otherinfo;//其它数据项,类型InfoType依赖于具体应用而定义

}RecType;

typedef RecType SeqList[n+1];//SeqList为顺序表类型,表中第0个单元一般用作哨兵

冒泡

void BubbleSort(SeqList R)

{ //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序

int i,j;

Boolean exchange; //交换标志

for(i=1i<ni++){ //最多做n-1趟排序

exchange=FALSE; //本趟排序开始前,交换标志应为假

for(j=n-1j>=i;j--) //对当前无序区R[i..n]自下向上扫描

if(R[j+1].key<R[j].key){//交换记录

R[0]=R[j+1]; //R[0]不是哨兵,仅做暂存单元

R[j+1]=R[j];

R[j]=R[0];

exchange=TRUE; //发生了交换,故将交换标志置为真

}

if(!exchange) //本趟排序未发生交换,提前终止算法

return;

} //endfor(外循环)

} //BubbleSort

快速选择

void SelectSort(SeqList R)

{

int i,j,k;

for(i=1i<ni++){//做第i趟排序(1≤i≤n-1)

k=i;

for(j=i+1j<=nj++) //在当前无序区R[i..n]中选key最小的记录R[k]

if(R[j].key<R[k].key)

k=j//k记下目前找到的最小关键字所在的位置

if(k!=i){ //交换R[i]和R[k]

R[0]=R[i];R[i]=R[k];R[k]=R[0]; //R[0]作暂存单元

} //endif

} //endfor

} //SeleetSort


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6128634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存