可以对表格的各列进行排序的函数类
<!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>
<kepala>
<meta http-equiv=Jenis Konten content=teks/html; rangkaian karakter=gb2312 />
<title>tabel排序类</title>
</kepala>
<tubuh>
<tipe gaya=teks/css>
.fu_list{ lebar:400 piksel; border:1px solid #ebebeb;line-height:20px; ukuran font:12 piksel;}
.fu_list iklan td{warna latar:#ebebeb;}
.fu_list td{padding:5px;}
.fu_list a{outline:none;/*ff*/hide-focus:expression(this.hideFocus=true);/*ie*/ text-decoration:none; warna:#333;}
.fu_list iklan a{padding-right:15px;}
.fu_list thead a.up, .fu_list thead a.down{ background:url(up.gif) kanan tengah tanpa pengulangan; }
.fu_list iklan a.down{background-image:url(down.gif);}
</gaya>
<batas tabel=0 spasi sel=0 bantalan sel=0 kelas=fu_list>
<kepala>
<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>上传时间</a></td>
<td width=50 align=center><a href=javascript:void(0) id=idSize>大小</a></td>
</tr>
</kepala>
<id orang=idList>
<tr>
<td _ext=rar>baru.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,09rb</td>
</tr>
<tr>
<td _ext=js>TagControl.js</td>
<td align=center _order=2008/9/23 11:26:57>23-9-2008 11:26:57</td>
<td align=right _order=1387>1,35 ribu</td>
</tr>
<tr>
<td _ext=js>Scroller.js</td>
<td align=center _order=2008/9/23 11:26:57>23-9-2008 11:26:57</td>
<td align=right _order=2556>2,5 ribu</td>
</tr>
<tr>
<td _ext=js>Kotak Peringatan.js</td>
<td align=center _order=2008/9/23 11:26:57>23-9-2008 11:26:57</td>
<td align=right _order=3565>3,48 ribu</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 ribu</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=kanan _order=351>351 b</td>
</tr>
<tr>
<td _ext=xml>berita.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 ribu</td>
</tr>
<tr>
<td _ext=xsl>berita.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 ribu</td>
</tr>
<tr>
<td _ext=js>fungsi.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 ribu</td>
</tr>
</tbody>
</tabel>
<tipe skrip=teks/javascript>
var $ = fungsi (id) {
kembalikan string == typeof id ? dokumen.getElementById(id) : id;
};
var Kelas = {
buat: fungsi() {
fungsi kembali() {
this.initialize.apply(ini, argumen);
}
}
}
Objek.extend = function(tujuan, sumber) {
for (properti var di sumber) {
tujuan[properti] = sumber[properti];
}
tujuan kembali;
}
fungsi Masing-masing(daftar, kesenangan){
for (var i = 0, len = daftar.panjang; i < len; i++) { menyenangkan(daftar[i], i); }
};
//////////////////////////////////////
/////////////////////////////////
var TableOrder = Kelas.create();
TableOrder.prototipe = {
inisialisasi: fungsi(tbody) {
var oIni = ini;
this.Body = $(tbody);//tbody对象
this.Rows = [];//行集合
Masing-masing(Ini.Badan.baris, fungsi(o){ oIni.Baris.push(o); })
},
//排序并显示
Urutkan: fungsi(urutan) {
//排序
this.Rows.sort(ini.Bandingkan(pesanan));
pesan.Bawah && ini.Baris.terbalik();
//显示表格
var oFragment = dokumen.createDocumentFragment();
Masing-masing(ini.Baris, fungsi(o){ oFragment.appendChild(o); });
this.Body.appendChild(oFragment);
},
//比较函数
Bandingkan: fungsi(urutan) {
var oIni = ini;
fungsi pengembalian(o1, o2) {
var value1 = oThis.GetValue(o1, pesanan), value2 = oThis.GetValue(o2, pesanan);
mengembalikan nilai1 < nilai2 ? -1 : nilai1 > nilai2 ? 1 : 0;
};
},
//获取比较值
GetValue: fungsi(tr, pesanan) {
var data = tr.getElementsByTagName(td)[order.Index].getAttribute(order.Attribute);
//数据转换
beralih (pesanan.DataType.toLowerCase()) {
kasus ke dalam:
kembalikan parseInt(data) || 0;
kasus mengapung:
kembalikan parseFloat(data) || 0;
tanggal kasus:
Tanggal kembali.parse(data) || 0;
string kasus:
bawaan:
kembalikan data.toString() || ;
}
},
//添加并返回一个排序对象
Tambahkan: function(indeks, opsi) {
var oIni = ini;
kembalikan fungsi baru(){
//默认属性
this.Attribute = innerHTML;//获取数据的属性
this.DataType = string;//数据类型
this.Down = false;//是否按顺序
Object.extend(ini, opsi || {});
//排序对象的属性
this.Indeks = indeks;
ini.Urutkan = fungsi(){ oIni.Urutkan(ini); };
};
}
}
var ke = TableOrder baru(idList);
fungsi SetOrder(obj, indeks, opsi){
var o = $(obj);
//添加一个排序对象
var order = ke.Tambahkan(indeks, opsi);
o.onclick = fungsi(){
//取相反排序
pesanan.Bawah = !pesanan.Bawah;
//设置样式
Masing-masing(SetOrder._arr, function(o){ o.className = ; })
o.className = pesanan.Bawah ? bawah : atas;
//排序显示
pesanan.Sort();
kembali salah;
}
//_arr是记录排序项目(这里主要用来设置样式)
SetOrder._arr ? SetOrder._arr.push(o) : SetOrder._arr = [];
}
SetOrder(idJudul, 0);
SetOrder(idExt, 0, { Atribut: _ext });
SetOrder(idAddtime, 1, { Atribut: _order, Tipe Data: tanggal });
SetOrder(idSize, 2, { Atribut: _order, Tipe Data: int });
</skrip>
</tubuh>
</html>