对javascript表格中的元素进行排序(正序和倒序)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
        <title>Insert title here</title>
  
  <!--去除下划线-->
  <style type="text/css">
   a{text-decoration:none;}  
   
  </style>
  <script type="text/javascript">
   /*
    * 对javascript表格中的元素进行排序(正序和倒序)
    *  知识点:其中使用了冒泡排序
    *         数组中的两个数据的交换
    */
   var nameTimes = 0; //为了让各自的元素排序,互不影响,为每个排序,添加一个统计次数
   var ageTimes = 0;
   var emailTimes = 0;
   function sortByName(){
    //获取tbody中所有的tr,然后按名字排序,内部是按码表值排序
    var trArr = document.getElementsByTagName("tbody")[0].rows; //获取TBODY中的所有TR
    for(var i = 0; i < trArr.length - 1; i++)
     for(var j = 0; j < trArr.length - 1 - i; j++)
      if(nameTimes % 2 == 0 ?
       (trArr[j].cells[0].innerHTML) > (trArr[j+1].cells[0].innerHTML)
        : (trArr[j].cells[0].innerHTML) < (trArr[j+1].cells[0].innerHTML))
       trArr[j].swapNode(trArr[j + 1]);
    nameTimes++;
   }
   function sortByAge(){
    //获取tbody中所有的tr,然后按年龄排序
    var trArr = document.getElementsByTagName("tbody")[0].rows;
    for(var i = 0; i < trArr.length - 1; i++)
     for(var j = 0; j < trArr.length - 1 - i; j++)
      if(ageTimes % 2 == 0 ?
       parseInt(trArr[j].cells[1].innerHTML) > parseInt(trArr[j+1].cells[1].innerHTML)
        : parseInt(trArr[j].cells[1].innerHTML) < parseInt(trArr[j+1].cells[1].innerHTML))
       trArr[j].swapNode(trArr[j + 1]);
    ageTimes++;
   }
   function sortByEmail(){
    //获取tbody中所有的tr,然后按邮箱排序,字母排序
    var trArr = document.getElementsByTagName("tbody")[0].rows;
    for(var i = 0; i < trArr.length - 1; i++)
     for(var j = 0; j < trArr.length - 1 - i; j++)
      if(emailTimes % 2 == 0 ?
       (trArr[j].cells[2].innerHTML) > (trArr[j+1].cells[2].innerHTML)
        : (trArr[j].cells[2].innerHTML) < (trArr[j+1].cells[2].innerHTML))
       trArr[j].swapNode(trArr[j + 1]);
    emailTimes++;
   }
  </script>
    </head>
    <body>
     <table width=60% border=1px cellspacing=0px cellpadding=5px align=center>
    <thead>
      <tr>
       <th><a href="javascript:sortByName()">姓名</a></th>
       <th><a href="javascript:sortByAge()">年龄</a></th>
       <th><a href="javascript:sortByEmail()">邮箱</a></th>
      </tr>
   </thead>
   <tbody>
    <tr>
       <td>郑立杰</td>
       <td>27</td>
       <td>zlj@gmail.com</td>
      </tr>
    <tr>
       <td>赵峥</td>
       <td>18</td>
       <td>zj@163.com</td>
      </tr>
    <tr>
       <td>吕佩</td>
       <td>18</td>
       <td>lp@sina.com.cn</td>
      </tr>
    <tr>
       <td>张纪强</td>
       <td>8</td>
       <td>zjq@qq.com</td>
      </tr>
    <tr>
       <td>杜超</td>
       <td>22</td>
       <td>dc@hotmail.com</td>
      </tr>
   </tbody>
     </table>
    </body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值