JavaScript:表格排序

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title></title>    <style>        #table{            width:600px;            border:3px solid darkgreen;            margin:20px auto;            text-align: center;            -webkit-user-select:none;            -moz-user-select:none;            -o-user-select:none;            -ms-user-select:none;        }        #table tr{            height:40px;            line-height:40px;        }        .bg0{            background: mediumvioletred;        }        .bg1{            background: greenyellow;        }        .bg2{            background: yellow;        }    </style></head><body><table id="table" class="table">    <thead>        <tr class="bg2">            <th class="cursor">姓名</th>            <th class="cursor">年龄</th>            <th class="cursor">分数</th>            <th class="cursor">性别</th>        </tr>    </thead>    <tbody>    </tbody></table>

<script>    var table=document.getElementById("table");    var th=table.tHead.rows[0].cells;    var body=table.tBodies[0];    var row=body.rows;    var data=null;    getData();    function getData(){        var xml=new XMLHttpRequest();        xml.open("get","data.txt",false);        xml.onreadystatechange= function () {            if(xml.readyState===4 && /^2\d{2}$/.test(xml.status)){                data=jsonParse(xml.responseText);            }        };        xml.send(null);    }    function jsonParse(jsonStr){        return "JSON" in window ? JSON.parse(jsonStr):eval("("+jsonStr+")");    }    bind();    function bind(){        var frg=document.createDocumentFragment();        for(var i=0;i<data.length;i++){            var cur=data[i];            var tr=document.createElement("tr");            for(var attr in cur){                if(attr==="sex"){                    cur[attr]=cur[attr]===0?"男":"女";                }                var td=document.createElement("td");                td.innerHTML=cur[attr];                tr.appendChild(td);            }            frg.appendChild(tr);        }        body.appendChild(frg);        frg=null;    }    changeColor();    function changeColor(){        for(var i=0;i<row.length;i++){            row[i].className="bg"+i%2;        }    }    function  makeArray(arg){        var ary=[];        try{            ary=Array.prototype.slice.call(arg);        }catch (e){            for(var i=0;i<arg.length;i++){                ary.push(arg[i]);            }        }        return ary;    }    function sort(n){        var that=this;        for(var i=0;i<th.length;i++){            th[i].flag=i===n?that.flag*=-1:-1;        }        var ary=makeArray(row);        ary.sort(function(a,b){            a= a.cells[n].innerHTML;            b= b.cells[n].innerHTML;            if(isNaN(a) && isNaN(b)){                return a.localeCompare(b)*that.flag;            }            return (a-b)*that.flag;        });        var frg=null;        for( i=0;i<ary.length;i++){            frg=ary[i];            body.appendChild(frg);        }        changeColor();    }    for(var i=0;i<th.length;i++){        if(th[i].className==="cursor"){            th[i].flag=-1;            th[i].index=i;            th[i].onclick=function(){                sort.call(this,this.index);            }        }    }</script></body></html>

附文件:data.txt
[    {"name": "赵老大", "age": 45, "score": 89, "sex": 0},    {"name": "钱二妞", "age": 24, "score": 67, "sex": 1},    {"name": "孙三娘", "age": 38, "score": 79, "sex": 1},    {"name": "李四爷", "age": 30, "score": 80, "sex": 0},    {"name": "周姑娘", "age": 65, "score": 56, "sex": 1},    {"name": "吴三桂", "age": 26, "score": 26, "sex": 0}]
时间: 2024-08-28 02:17:39

JavaScript:表格排序的相关文章

javascript表格排序原理

代码: var arr = new Array( 3,2,6,1,5 ) var flag = true function mySort(arr){ if(flag){ arr = arr.sort(function(a,b){ return a-b }) }else{ arr = arr.sort(function(a,b){ return b-a }) } flag = !flag return arr } mySort(arr) console.log(arr) mySort(arr) c

javascript实现简单的table表格排序特效

javascript实现简单的table表格排序特效,在这个列子中,练习了table的操作,主要有:tBodies.rows.cells,还有有关数组的排序方法:sort javascript中有关table元素的属性.方法: 1.caption:保存着对<caption>元素(如果有)的指针 2.tBodies:是一个<tbody>元素的HTMLCollection 3.tFoot:保存着对<tfoot>元素(如果有)的指针 4.tHead:保存着对<thead

[Js]表格排序

思路:遍历每个li,病并把它们存放到数组中去,然后通过sort()方法进行排序 <body>    <input type="button" value="排序按钮" id="btn1">    <ul id="ul1">        <li>58</li>        <li>8</li>        <li>31</

table排序,多个表格排序

<!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-

html表格排序之完全详解

<!DOCTYPE HTML> <html>  <head>     <title> 表格排序 </title>     <meta charset="utf-8">     <meta name="Generator" content="EditPlus">     <meta name="Author" content="t

使用jQuery UI 实现表格排序

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>表格排序</title> <link rel="stylesheet" href="jquery-ui-1.12.0/jquery-ui.css"></head> <body><table id="myTabl

ajax json 表格排序,分页,自定义每页数量

ajax json 表格排序,分页,自定义每页数量 点击表头可以排序,按照升序或者降序,另外支持多列排序 设置每页数量 演示 XML/HTML Code <table id='example3'> <thead> <tr> <th>ID</th> <th>First name</th> <th>Last name</th> <th>Grade</th> <th>G

使用jquery的tablesorter插件进行表格排序

今天在学习bootstrap的时候,突然看见tablesorter这个东东了,立马百度了一下,发现了这个东东.. 下面说一下今天我在项目中看见前辈们用的表格排序 tablesorter的官方网站:http://tablesorter.com/docs/ 使用方法:1.下载tablesorter http://tablesorter.com/jquery.tablesorter.zip 2.解压文件,将jquery和jquery.tablesorter.min.js导入到项目文件中 3.修改htm

JS实现表格排序

今天有点闲,写个小东西,使用JS实现点击表格标题栏实现自动排序功能,嘻嘻... 一.JS代码,文件名为code.js如下: (function($){ //插件 $.extend($,{ //命名空间 sortTable:{ sort:function(tableId,Idx){ var table = document.getElementById(tableId); var tbody = table.tBodies[0]; var tr = tbody.rows; var trValue

jQuery表格排序组件-tablesorter

一.引入文件 <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.tablesorter.js"></script> <!-- 引入以下样式则表头出现排序图标,同时引入图片 --> <link href=