国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

js table排序類代碼

2024-05-04 11:09:12
字體:
供稿:網(wǎng)友
可以對(duì)表格的各列進(jìn)行排序的函數(shù)類

<!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-Type" content="text/html; charset=gb2312" />
<title>table排序類</title>
</head>
<body>
<style type="text/css">
.fu_list{ width:400px; border:1px solid #ebebeb;line-height:20px; font-size:12px;}
.fu_list thead td{background-color:#ebebeb;}
.fu_list td{padding:5px;}
.fu_list a{outline:none;/*ff*/hide-focus:expression(this.hideFocus=true);/*ie*/ text-decoration:none; color:#333;}
.fu_list thead a{padding-right:15px;}
.fu_list thead a.up, .fu_list thead a.down{ background:url(up.gif) right center no-repeat; }
.fu_list thead a.down{background-image:url(down.gif);}
</style>
<table border="0" cellspacing="0" cellpadding="0" class="fu_list">
<thead>
<tr>
<td> <a href="javascript:void(0)" id="idTitle">名稱</a> / <a href="javascript:void(0)" id="idExt">類型</a></td>
<td width="200" align="center"><a href="javascript:void(0)" id="idAddtime" class="up">上傳時(shí)間</a></td>
<td width="50" align="center"><a href="javascript:void(0)" id="idSize">大小</a></td>
</tr>
</thead>
<tbody id="idList">
<tr>
<td _ext="rar">new.rar</td>
<td align="center" _order="2008/9/12 8:51:09">2008-9-12 8:51:09</td>
<td align="right" _order="433247">423.09 K</td>
</tr>
<tr>
<td _ext="js">TagControl.js</td>
<td align="center" _order="2008/9/23 11:26:57">2008-9-23 11:26:57</td>
<td align="right" _order="1387">1.35 K</td>
</tr>
<tr>
<td _ext="js">Scroller.js</td>
<td align="center" _order="2008/9/23 11:26:57">2008-9-23 11:26:57</td>
<td align="right" _order="2556">2.5 K</td>
</tr>
<tr>
<td _ext="js">AlertBox.js</td>
<td align="center" _order="2008/9/23 11:26:57">2008-9-23 11:26:57</td>
<td align="right" _order="3565">3.48 K</td>
</tr>
<tr>
<td _ext="htm">1.htm</td>
<td align="center" _order="2008/10/4 20:21:54">2008-10-4 20:21:54</td>
<td align="right" _order="11394">11.13 K</td>
</tr>
<tr>
<td _ext="htm">4.htm</td>
<td align="center" _order="2008/10/4 20:21:54">2008-10-4 20:21:54</td>
<td align="right" _order="351">351 b</td>
</tr>
<tr>
<td _ext="xml">news.xml</td>
<td align="center" _order="2008/10/4 20:24:11">2008-10-4 20:24:11</td>
<td align="right" _order="14074">13.74 K</td>
</tr>
<tr>
<td _ext="xsl">news.xsl</td>
<td align="center" _order="2008/10/4 20:24:11">2008-10-4 20:24:11</td>
<td align="right" _order="16796">16.4 K</td>
</tr>
<tr>
<td _ext="js">function.js</td>
<td align="center" _order="2008/10/4 20:24:11">2008-10-4 20:24:11</td>
<td align="right" _order="2844">2.78 K</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};
var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
Object.extend = function(destination, source) {
    for (var property in source) {
        destination[property] = source[property];
    }
    return destination;
}
function Each(list, fun){
    for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); }
};
/////////////////////////////////////
////////////////////////////////
var TableOrder = Class.create();
TableOrder.prototype = {
initialize: function(tbody) {
    var oThis = this;
    
    this.Body = $(tbody);//tbody對(duì)象
    this.Rows = [];//行集合
    
    Each(this.Body.rows, function(o){ oThis.Rows.push(o); })
},
//排序并顯示
Sort: function(order) {
    //排序
    this.Rows.sort(this.Compare(order));
    order.Down && this.Rows.reverse();
    //顯示表格
    var oFragment = document.createDocumentFragment();
    Each(this.Rows, function(o){ oFragment.appendChild(o); });
    this.Body.appendChild(oFragment);
},
//比較函數(shù)
Compare: function(order) {
    var oThis = this;
    return function(o1, o2) {
        var value1 = oThis.GetValue(o1, order), value2 = oThis.GetValue(o2, order);
        return value1 < value2 ? -1 : value1 > value2 ? 1 : 0;
    };
},
//獲取比較值
GetValue: function(tr, order) {
    var data = tr.getElementsByTagName("td")[order.Index].getAttribute(order.Attribute);
    //數(shù)據(jù)轉(zhuǎn)換
    switch (order.DataType.toLowerCase()) {
        case "int":
            return parseInt(data) || 0;
        case "float":
            return parseFloat(data) || 0;
        case "date":
            return Date.parse(data) || 0;
        case "string":
        default:
            return data.toString() || "";
    }
},
//添加并返回一個(gè)排序?qū)ο?br />Add: function(index, options) {
    var oThis = this;
    return new function(){
        //默認(rèn)屬性
        this.Attribute = "innerHTML";//獲取數(shù)據(jù)的屬性
        this.DataType = "string";//數(shù)據(jù)類型
        this.Down = false;//是否按順序
        Object.extend(this, options || {});
        //排序?qū)ο蟮膶傩?br />        this.Index = index;
        this.Sort = function(){ oThis.Sort(this); };
    };
}
}
var to = new TableOrder("idList");
function SetOrder(obj, index, options){
    var o = $(obj);
    //添加一個(gè)排序?qū)ο?br />    var order = to.Add(index, options);
    o.onclick = function(){
        //取相反排序
        order.Down = !order.Down;
        //設(shè)置樣式
        Each(SetOrder._arr, function(o){ o.className = ""; })
        o.className = order.Down ? "down" : "up";
        //排序顯示
        order.Sort();
        return false;
    }
    //_arr是記錄排序項(xiàng)目(這里主要用來設(shè)置樣式)
    SetOrder._arr ? SetOrder._arr.push(o) : SetOrder._arr = [];
}
SetOrder("idTitle", 0);
SetOrder("idExt", 0, { Attribute: "_ext" });
SetOrder("idAddtime", 1, { Attribute: "_order", DataType: "date" });
SetOrder("idSize", 2, { Attribute: "_order", DataType: "int" });
</script>
</body>
</html> 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 华宁县| 金湖县| 乌拉特后旗| 长子县| 鹤山市| 永仁县| 新和县| 天水市| 上犹县| 邢台市| 南木林县| 上杭县| 鹤山市| 永福县| 武宣县| 静海县| 阜新| 北京市| 阿瓦提县| 柞水县| 玉屏| 通化县| 楚雄市| 开封市| 洱源县| 精河县| 渭源县| 岢岚县| 南安市| 绿春县| 普定县| 琼结县| 桂林市| 象州县| 吉安县| 蒲城县| 上犹县| 峨眉山市| 绥化市| 浦东新区| 开平市|