javascript實(shí)現(xiàn)多列table排序
來(lái)源:易賢網(wǎng) 閱讀:2259 次 日期:2014-08-15 17:03:04
溫馨提示:易賢網(wǎng)小編為您整理了“javascript實(shí)現(xiàn)多列table排序”,方便廣大網(wǎng)友查閱!

通過(guò)javascript的localeCompare來(lái)進(jìn)行排序判斷判斷,這里舉例是對(duì)1列的table進(jìn)行排序.

查看效果:javascript實(shí)現(xiàn)table多列排序,列是不通的數(shù)據(jù)類(lèi)型,通過(guò)轉(zhuǎn)換后的數(shù)據(jù)類(lèi)型再次排列

建立方法管理容器

var forasp = new Object;

首先看類(lèi)型轉(zhuǎn)換函數(shù)

forasp.conver =function(oValue,oDatetype)

{switch(oDatetype){

case "int":

return parseInt(oValue);

case "float":

return parseFloat(oValue);

case "date":

return new Date(Date.parse(oValue));

default:

return oValue.toString();

}

}

再看比較函數(shù)

forasp.bijiao = function(TRi,oDatetype)//在這里解釋一下,TRi是第幾列如果是第一列則為0,第二列則為1,返回的結(jié)果也是一個(gè)函數(shù),因?yàn)樵谂判蚝瘮?shù)中sort()里面是一個(gè)函數(shù).

{

return function compare(oTR1,oTR2)

{

var s1 = forasp.conver(oTR1.cells[TRi].firstChild.nodeValue,oDatetype);//通過(guò)TRi傳過(guò)來(lái)列索引號(hào)的內(nèi)容

var s2 = forasp.conver(oTR2.cells[TRi].firstChild.nodeValue,oDatetype);//并通過(guò)轉(zhuǎn)換函數(shù)將列的值進(jìn)行轉(zhuǎn)換

if (s1<s2)//轉(zhuǎn)為相同的數(shù)據(jù)類(lèi)型后比較.

{return -1;}

else if(s1>s2)

{return 1;}

else

{return 0;}

}

}

調(diào)用比較函數(shù)

forasp.sortTable = function(id,TRi,oDatetype)

{

var oTable = document.getElementById(id);//獲取以id為id的table對(duì)象---

var oTbody = oTable.tBodies[0];//獲取第一個(gè)tBody

var oRows = oTbody.rows;//獲取tBody的所有的行

var aTRs = new Array;//新建一個(gè)數(shù)組

for (var i=0;i < oRows.length ;i++ )

{

aTRs[i] = oRows[i];//循環(huán)將所有行換到新的數(shù)組

}

//在這里多一個(gè)功能就是翻轉(zhuǎn),當(dāng)多次點(diǎn)擊,都進(jìn)行翻轉(zhuǎn)即可,在這里給表的對(duì)象設(shè)置一個(gè)屬性nowlie

if(oTable.nowlie!=TRi)//如果不是當(dāng)前列

{

aTRs.sort(forasp.bijiao(TRi,oDatetype));//對(duì)數(shù)組進(jìn)行比較,是通過(guò)新的數(shù)組的行比較===

}

else

{

aTRs.revers();

}

var otemp = document.createDocumentFragment();//創(chuàng)建文檔碎片

for (var i = 0;i<aTRs.length ;i++ )

{

otemp.appendChild(aTRs[i]);//分別將每行加入到文檔碎片中

}

oTbody.appendChild(otemp);//將文檔碎片添加到文檔中

oTable.nowlie = TRi;//設(shè)置nowlie屬性

}

-->

接下來(lái)是頁(yè)面代碼

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>javascript獲取按鍵值-網(wǎng)站制作學(xué)習(xí)網(wǎng)</TITLE>

在這里插入代碼

</HEAD>

<BODY>

<table id="forasp_cn" >

<thead>

<tr>

<th onclick = "forasp.sortTable('forasp_cn',0);">字符排序</th>

<th onclick = "forasp.sortTable('forasp_cn',1,'int');">數(shù)字排序</th>

<th onclick = "forasp.sortTable('forasp_cn',2,'float');">小樹(shù)排序</th>

<th onclick = "forasp.sortTable('forasp_cn',3,'date');">日期排序</th>

</tr>

</thead>

<tbody>

<tr><td>w</td><td>1</td><td>1.01</td><td>6/9/1999</td></tr>

<tr><td>w</td><td>3</td><td>3.25</td><td>12/25/2010</td></tr>

<tr><td>w</td><td>2</td><td>2.18</td><td>10/9/2008</td></tr>

<tr><td>f</td><td>36</td><td>2.99</td><td>9/12/1985</td></tr>

<tr><td>a</td><td>65</td><td>3.12</td><td>3/9/2010</td></tr>

<tr><td>s</td><td>22</td><td>10.3</td><td>4/2/2009</td></tr>

<tr><td>p</td><td>12</td><td>4.5</td><td>9/17/2011</td></tr>

<tr><td>dian</td><td>31</td><td>2.33</td><td>3/3/2007</td></tr>

<tr><td>c</td><td>33</td><td>9.68</td><td>6/4/2010</td></tr>

<tr><td>n</td><td>21</td><td>5.69</td><td>9/17/2009</td></tr>

</tbody>

</BODY>

</HTML>

完畢,看看你懂了么,這是通過(guò)javascript的localepare對(duì)table內(nèi)容進(jìn)行排序,

更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄

更多信息請(qǐng)查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:javascript實(shí)現(xiàn)多列table排序
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)