表格列点击排序

实现点击表格列实现排序的效果,按照一列一列的排序

代码如下:

排序代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        table{
            border-collapse: collapse;
        }
        th,td{
            height: 30px;
            width: 80px;
            border: 1px solid black;
            text-align: center;
            margin: 0;

        }
        .content{
            margin: auto;
        }
    </style>
</head>
<body>
<div class="content">
    <table>
        <thead>
           <tr>
               <th>姓名</th>
               <th id="mathBtn">数学</th>
               <th id="artBtn">语文</th>
               <th id="EngBtn">英语</th>
               <th id="allScore">总分</th>
           </tr>
        </thead>
        <tbody>
        <tr><td>小明</td><td>80</td><td>90</td><td>70</td><td>120</td></tr>
        <tr><td>小红</td><td>1</td><td>60</td><td>3</td><td>10</td></tr>
        <tr><td>小刘</td><td>50</td><td>49</td><td>68</td><td>210</td></tr>
        <tr><td>小张</td><td>20</td><td>30</td><td>40</td><td>100</td></tr>
        </tbody>
    </table>
</div>
<script type="text/javascript">
    /*
    *
    *,compare比较函数
    *这里使用了闭包解决for循环问题
    *
    * */
    window.onload=function() {
        var bjuge = false;
        var body = document.getElementsByTagName("tbody")[0];
        var th = document.getElementsByTagName("th");//为什么点击事件没有发生呢
        for (var k = 1; k < 5; k++) {
                th[k].onclick =function(k){
                    return function () {
                    var temp = new Array(4);
                    for (var i = 0; i < 4; i++) {
                        temp[i] = body.children[i].getElementsByTagName("td")[k].innerText;
                    }
                    function compare2(value1, value2) {
                        return value1 - value2;
                    }
                    if (bjuge == true) {
                        temp = temp.sort(compare2);
                        bjuge = false;
                    } else {
                        temp = temp.reverse(temp.sort(compare2));
                        bjuge = true;
                    }
                    for (var m = 0; m < 4; m++) {
                        for (var j = 0; j < 4; j++) {
                            if (body.children[j].getElementsByTagName("td")[k].innerText == temp[m]) {
                                body.children[m].parentNode.insertBefore(body.children[j], body.children[m]);
                            }
                        }
                    }
                }
            }(k)
        }
    }
    </script>
</body>
</html>

笔记:

时间: 2024-10-05 12:46:42

表格列点击排序的相关文章

DataTables页面列点击排序

<!-- DataTables --> <script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.15/js/jquery.dataTables.js"></script> $(document).ready(function() { $('#dtlTable').dataTable({ //设置默认第二列

动态增加,删除表格行并按照表格列排序

接着上一篇博文,解决上一篇博文最后遗留的瑕疵,同时,给表格列添加了排序功能. 解决掉的问题 1 乱码的问题 2 删除方法更加简便,省去获取父节点id的代码 3 点击第一行的add按钮后,下行table行变宽问题 <html> <head> <title>Table</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"&g

php点击排序

相信小伙伴们一定遇到过一种效果,就是点击按钮实现这一列的排序包括升序降序等 怎么来实现呢  听司令给你捣鼓捣鼓,就是这个: array_multisort() 函数返回排序数组.您可以输入一个或多个数组.函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序. 举个例子吧 $zl[]=$result[$k]['share_uv'];//这里的$result为你从数据库里面获取出来的某个表中的数据 //根据前面传过来的参数判断是升序还是降序 if($_GET['

django +jQuery Grid Plugin 实现表格前提自动分页, 排序

由于django 中文在前台显示乱码,本文使用了 先在用django模板生成表格,再用jQuery Grid对表格 进行处理. <link href="../pqgrid.min.css" rel="stylesheet"> <script type="text/javascript" src="../js/pqgrid.min.js"></script> <script type=&

easyui中表格列之间的换位05

easyui表格列的换位:需要注意的是,标题变换完后,标题中的属性可能会发生改变,需要处理<script type="text/javascript" th:inline="none"> $(function () { var cols = [ {title:'编号',field:'modelId',hidden:true}, {title:'车型名称',field:'modelStandardName'}, {title:'车型别名',field:'m

解决Ext4.2.3中propertyGrid修改后点击排序报错

Ext4.2.3中PropertyGrid修改后点击排序报错,具体错误信息如下: 一开始还怀疑是自己哪里配置错了,各种尝试结果还是一样.查遍百度和谷歌,无果,只有一篇帖子说是4.2.4修正了.还是自己动手吧,自己动手丰衣足食. 点开报错地方(如下图所示),原来是me.field.column没有定义. 然后继续找,找啊找啊找到Ext.grid.property.Grid的getCellEditor方法.此方法有参数column,可在方法体内,column就没有被用到过,于是就感觉问题出在这里.

FineUIMvc随笔 - 动态创建表格列

声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 用户希望实现动态创建表格列,在 WebForms 中,我们通过在 Page_Init 中创建列来实现: 但是在 MVC 中,如果还想着 WebForms 的那一套,想着怎么才能在 Controller 中访问 View 中的表格控件,这是行不通的. 我曾写过一个系列文章<ASP.NET MVC快速入门(MVC5+EF6)>,开篇就讲到了 MVC 中的页面的生成流程: 这个页面之所以能够呈现在我们眼前,经历了三个主

表格列宽怎么设置都无效?(td内容自动换行问题)

有次设置表格列宽时,显示的实际宽度与设置的宽度不一致,且无规律变化.最后,在查找资料后发现,可能是td内容 自动换行 的问题.因为表格中的内容有中文.英文字母.还有数字,以及三者的各种组合,所以换行的方式不一致,导致列宽变化.(个人分析,不妥之处请拍砖.) 所以添加以下css可以解决问题: table{ word-break:break-all ; word-wrap:break-word } 说明: (1) word-break:break-all:截断单词进行换行. (2) word-wra

1_表格列的控制.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-