javascript实现对表格元素进行排序操作_javascript技巧

我们在上网中都能看到很多能够排序的,如大小、时间、价格等
现在我们也试一下排序功能:
排序的函数代码:里面含有点击之后排序--还原,和排升序和降序。

 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排序
, javascript表格排序
javascript表格
javascript冒泡排序、javascript 排序、javascript 数组排序、javascript排序算法、javascript快速排序,以便于您获取更多的相关知识。

时间: 2024-08-31 16:36:53

javascript实现对表格元素进行排序操作_javascript技巧的相关文章

javascript删除数组重复元素的方法汇总_javascript技巧

本文实例讲述了javascript删除数组重复元素的方法.分享给大家供大家参考.具体分析如下: 这里分享一个前端面试高频题,主要实现javascript删除数组重复元素.希望对初学者有所帮助 //数组去重的方法 Array.prototype.unique=function(){ //集中声明变量 var oldArr=this, newArr=[oldArr[0]], len=oldArr.length, i=1; //过滤空数组 if(!len) return this; //过滤重复元素

JavaScript动态修改网页元素内容的方法_javascript技巧

本文实例讲述了JavaScript动态修改网页元素内容的方法.分享给大家供大家参考.具体分析如下: 下面的JS代码当用户点击提交按钮后,通过元素的textContent或者innerHTML动态指定元素的内容 <script type="text/javascript"> function showCard() { var message = document.getElementById("CCN").value; var element = docu

javascript实现table表格隔行变色的方法_javascript技巧

本文实例讲述了javascript实现table表格隔行变色的方法.分享给大家供大家参考.具体实现方法如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>table间隔色</title

JS对HTML表格进行增删改操作_javascript技巧

要求如下:  写一个html页面,里面有一个表格,储存用户信息,包括:用户名,密码,姓名,邮箱,电话,qq,身份证号.  现在要通过js对表格进行动态的增删改查(只是内存操作即可): 首先,加载页面时用js加载3条初始化记录:  有一个增加记录的按钮,点击后弹出一个div层提供输入,要求各字段必须符合输入格式且不能为空:  用户名:英文+数字+下划线:  密码:英文+数字+下划线+6位以上:  姓名:中文:  邮箱,电话,qq,身份证号符合格式:  每条记录有修改.删除:  修改类似增加,要把原

javascript学习基础笔记之DOM对象操作_javascript技巧

DOM文档对象模型是HTML和XML的应用程序接口(API),DOM将整个页面规划成由节点层次构成的文档.DOM对象给予开发者对HTML的访问权限,并且使开发者能将HTML作为XML文档来处理和查看.DOM对象是与语言无关的API,意味着它的实现并不是与javascript绑定,这在于初学者来说可能会理解错误.DOM是针对XML的基于树的API,它关注的不仅仅是解析XML代码,而是用一系列相互关联的对象来表示这些代码,而这些对象可以被修改,而且无需重新解析代码就能直接访问它们.由于DOM的使用上

解析javascript 数组以及json元素的添加删除_javascript技巧

javasscript删除数组的3种方法1,用shift()方法shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefinedvar chaomao=[1,2,3,4,5]var chaomao.shift()//得到1alert(chaomao)//[2,3,4,5] 2,用pop()方法pop:删除原数组最后一项,并返回删除元素的值:如果数组为空则返回undefinedvar chaomao=[1,2,3,4,5]var chaomao.pop()//得到5alert

javascript删除一个html元素节点的方法_javascript技巧

本文实例讲述了利用原生javascript实现删除一个指定的html元素的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.jb51.net/" /> <title>&l

javascript替换已有元素replaceChild()使用介绍_javascript技巧

replaceChild(a,b)是用来替换文档中的已有元素的 参数a:要插入的节点, 参数b:要替换的节点 复制代码 代码如下: var oDiv = document.getElementById("guoDiv"); var oSpan = document.createElement("span"); oSpan.innerHTML = "4"; var firsChild = oDiv.firstElementChild ? oDiv.

JavaScript中常见获取元素的方法汇总_javascript技巧

常见的获取元素的方法有3种,分别是通过元素ID.通过标签名字和通过类名字来获取. getElementById DOM提供了一个名为getElementById的方法,这个方法将返回一个与之对应id属性的节点对象.使用的时候请注意区分大小写. 它是document对象特有的函数,只能通过其来调用该方法.其使用的方法如下: 复制代码 代码如下: document.getElementById('demo') //demo是元素对应的ID 该方法兼容主流浏览器,甚至包括IE6+,可以大胆使用. ge