我们在上网中都能看到很多能够排序的,如大小、时间、价格等
现在我们也试一下排序功能:
排序的函数代码:里面含有点击之后排序--还原,和排升序和降序。
function sortAge(){ //对年龄进行排序,要先进行获得每一行对象,然后对象对象中的第一个(从0 开始)的大小进行排序 var tabNode = document.getElementById("tabid"); var rows0 = tabNode.rows; var rows1 = []; //现将元素拷贝一份出来, 第一行不用排序 for (var x = 1; x < rows0.length; x++) { rows1[x - 1] = rows0[x]; } for (var x = 0; x < rows1.length - 1; x++) {//每个元素是行对象 for (var y = x + 1; y < rows1.length; y++) { //对每一行的内容进行解析成数字 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 = 0; x < rows1.length; x++) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } }else{ for (var x = 1; x < rows0.length; x++) { // 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 = 0; x < rows1.length; x++) {//排好序之后就从0开始 // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } ageimg.innerHTML="年龄▲";//设置上面的图标 }else{ for (var x = rows1.length-1; x >=0; x--) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } ageimg.innerHTML="年龄▼" } flag=!flag; loading();//排序之后还要对颜色重新设置 }
设置表格的背景颜色代码,导入的css:
function loading(){ var name; var tabNode=document.getElementById("tabid"); var rows=tabNode.rows;//获得每一行的数组对象 var rowslength=rows.length;//每一行的长度 for(var x=1;x<rowslength;x++){//根据每一个去设置 if(x%2==0){ rows[x].className="one"; }else{ rows[x].className="two"; } //当移动上去之后,之前的颜色要记录下来,不然移下来之后全部都是一个颜色了 rows[x].onmouseover=function(){ name=this.className; this.className="three"; } rows[x].onmouseout=function(){ this.className=name; } } } onload=function(){ loading(); }
css代码:
table td a:hover{ background-color:#0080c0; } .one{ background-color:#80ff00; } .two{ background-color:#ff8040; } .three{ background-color:#008040; } table{ width:500px; height:500px; border:#400040 solid 2px; border-collapse:collapse; } table td,th{ border:solid 2px; } table th{ background-color:#c0c0c0; }
效果图-----排序之前:
升序:
降序:
完整代码:
<!DOCTYPE html> <html> <head> <title>sort.html</title> <style type="text/css"> table td a:hover{ background-color:#0080c0; } .one{ background-color:#80ff00; } .two{ background-color:#ff8040; } .three{ background-color:#008040; } table{ width:500px; height:500px; border:#400040 solid 2px; border-collapse:collapse; } table td,th{ border:solid 2px; } table th{ background-color:#c0c0c0; } </style> <script type="text/javascript"> function loading(){ var name; var tabNode=document.getElementById("tabid"); var rows=tabNode.rows;//获得每一行的数组对象 var rowslength=rows.length;//每一行的长度 for(var x=1;x<rowslength;x++){//根据每一个去设置 if(x%2==0){ rows[x].className="one"; }else{ rows[x].className="two"; } //当移动上去之后,之前的颜色要记录下来,不然移下来之后全部都是一个颜色了 rows[x].onmouseover=function(){ name=this.className; this.className="three"; } rows[x].onmouseout=function(){ this.className=name; } } } onload=function(){ loading(); } var flag=true; function sortAge(){ //对年龄进行排序,要先进行获得每一行对象,然后对象对象中的第一个(从0 开始)的大小进行排序 var tabNode = document.getElementById("tabid"); var rows0 = tabNode.rows; var rows1 = []; //现将元素拷贝一份出来, 第一行不用排序 for (var x = 1; x < rows0.length; x++) { rows1[x - 1] = rows0[x]; } for (var x = 0; x < rows1.length - 1; x++) {//每个元素是行对象 for (var y = x + 1; y < rows1.length; y++) { //对每一行的内容进行解析成数字 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 = 0; x < rows1.length; x++) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } }else{ for (var x = 1; x < rows0.length; x++) { // 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 = 0; x < rows1.length; x++) {//排好序之后就从0开始 // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } ageimg.innerHTML="年龄▲";//设置上面的图标 }else{ for (var x = rows1.length-1; x >=0; x--) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } ageimg.innerHTML="年龄▼" } flag=!flag; loading();//排序之后还要对颜色重新设置 } </script> </head> <body> <table id="tabid"> <tr><th>姓名</th> <th><a href="javascript:void(0)" onclick="sortAge()" id="ageid">年龄</a></th> <th>出生地</th> </tr> <tr> <td>张三</td> <td>13</td> <td>湖南长沙</td> </tr> <tr> <td>李四</td> <td>15</td> <td>湖南常德</td> </tr> <tr> <td>jack</td> <td>45</td> <td>湖南临澧</td> </tr> <tr> <td>王华</td> <td>23</td> <td>浙江杭州</td> </tr> <tr> <td>张进</td> <td>30</td> <td>安微合肥</td> </tr> <tr> <td>周全</td> <td>23</td> <td>湖南益阳</td> </tr> <tr> <td>杨哥</td> <td>42</td> <td>湖南常德</td> </tr> </table> </body> </html>
以上就是本文的全部内容,很详细,教大家如何对表格中的元素进行排序操作,感谢大家阅读这篇javascript实现对表格元素进行排序操作的文章,希望大家喜欢。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]