我们在上网中都能看到很多能够排序的,如大小、时间、价格等
现在我们也试一下排序功能:
排序的函数代码:里面含有点击之后排序--还原,和排升序和降序。
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实现对表格元素进行排序操作的文章,希望大家喜欢。
问题内容: 我正在寻找一种表排序解决方案(使用JavaScript),但似乎还找不到合适的解决方案。我只需要按字母顺序对每一列进行排序。它不需要忽略任何代码或任何数字或使用货币。只需单击列标题即可将其从排序的z / za中切换出来。 有人知道这样一个非常简单的解决方案吗? 问题答案: 纯Javascript(ES6) 进行字母和数字排序-升序和降序 可在 Chrome , Firefox , Sa
我试图理解使用中给出的递归对堆栈元素进行排序http://www.geeksforgeeks.org/sort-a-stack-using-recursion/不允许使用while、for…等任何循环结构。我们只能在堆栈S上使用以下ADT函数: is_empty(S):测试堆栈是否为空。 push(S) :向堆栈添加新元素。 Pop(S):从堆栈中删除顶部元素。 top(S) :返回 top 元素
主要内容:算法总结及实现,优化算法在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如: 一个保存了班级学号的数组,排序后更容易分区好学生和坏学生; 一个保存了商品单价的数组,排序后更容易看出它们的性价比。 对数组元素进行排序的方法有很多种,比如冒泡排序、归并排序、选择排序、插入排序、快速排序等,其中最经典最需要掌握的是「冒泡排序」。 以从小到大排序为例,冒泡排序的整体
问题内容: 有没有一种快速的方法来对选择元素的项目进行排序?还是我不得不写JavaScript? 请任何想法。 问题答案: 这将达到目的。只要将您的select元素传递给la:当您需要对列表进行排序时。
本文向大家介绍javascript操作表格排序实例分析,包括了javascript操作表格排序实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript操作表格排序的方法。分享给大家供大家参考。具体如下: 完整例子如下: 希望本文所述对大家的javascript程序设计有所帮助。
本文向大家介绍对arraylist中元素进行排序实例代码,包括了对arraylist中元素进行排序实例代码的使用技巧和注意事项,需要的朋友参考一下 rrayList中的元素进行排序,主要考查的是对util包中的Comparator接口和Collections类的使用。 实现Comparator接口必须实现compare方法,自己可以去看API帮助文档。 创建一个Comparator实例后,用Col