模板無憂
網頁特效
每日更新
|
TOP排行榜
|
Tag標簽
|
充值
無憂首頁
網頁模板
程序模板
建站教程
視頻教程
網頁特效
圖標素材
字體下載
站長工具
站長問答
網頁特效
菜單導航
圖片特效
文本鏈接
層和布局
頁面背景
表單按鈕
日期時間
計算轉換
鍵盤鼠標
瀏覽器
游戲娛樂
綜合其它
常用代碼
jQuery特效
Prototype
Ajax/JavaScript
ExtJS
CSS特效
在線編輯器
Mootools
HTML
JS廣告代碼合集
站長工具
站長常用軟件
網站綜合查詢
Alexa排名查詢
Google PR查詢
域名Whois查詢
網站收錄查詢
友情鏈接查詢
CSS2中文手冊
CSS精簡優化工具
網頁特效代碼
模板無憂
>
網頁特效
>
層和布局特效代碼
>
收藏
分享
查看評論
層和布局
演示
自寫的JS表格排序_層和布局特效
查看演示效果
特效Tag:
表格排序
添加
自寫的JS表格排序,目前僅支持數字排序,其他的可以擴展sort和配置來實現,并且目前只支持單行表頭,歡迎一起交流。
<title>JS表格排序</title> <script type="text/javascript"> var tableSort = {}; (function() { var oTable = {}; var cellStatus = {}; var sortCells = {}; var limit = {}; var $ = function(id) { return document.getElementById(id); } var objKeyExists = function(key, search) { if (typeof key != 'number' && typeof key != 'string') { return false; } for (k in search) { if (k == key) { return true; } } return false; } var _addEvent = function(tableId, cellId) { oTable[tableId].rows[0].cells[cellId].onclick = function() { tableSort.sort(tableId, cellId); } } var _addStyle = function(tableId, cellId) { oTable[tableId].rows[0].cells[cellId].style.cursor = 'pointer'; } var _addTitle = function(tableId, cellId) { oTable[tableId].rows[0].cells[cellId].title = '點擊排序'; } var _sortTable = function(tableId, cellId) { var rows = oTable[tableId].tBodies[0].rows; var _rows = []; for (var i = 1; i < rows.length; i++) { _rows.push(rows[i]); } var status = -1; if (objKeyExists(cellId, cellStatus[tableId])) { status = 0 - cellStatus[tableId][cellId]; } cellStatus[tableId][cellId] = status; if (status == 1) { oTable[tableId].rows[0].cells[cellId].innerHTML += ' <span style="font-family:webdings;">5</span>'; _rows.sort((function(id){ return function(a, b) { return _sort(a, b, id); } }(cellId))); } else { oTable[tableId].rows[0].cells[cellId].innerHTML += ' <span style="font-family:webdings;">6</span>'; _rows.sort((function(id){ return function(a, b) { return _rsort(a, b, id); } }(cellId))); } var oFragment = document.createDocumentFragment(); for (var i = 0; i < _rows.length; i++) { _rows[i].className = i % 2 ? 'tr' : 'tr_spec'; _rows[i].cells[0].className = i % 2 ? 'td_spec2' : 'td_spec1'; if (limit[tableId] > 0) { if (i >= limit[tableId]) { _rows[i].style.display = 'none'; } else { _rows[i].style.display = ''; } } oFragment.appendChild(_rows[i]); } oTable[tableId].tBodies[0].appendChild(oFragment); } var _cleanStatus = function(tableId, cellId) { for(var i = 0; i < sortCells[tableId].length; i++) { oTable[tableId].rows[0].cells[sortCells[tableId][i]].innerHTML = oTable[tableId].rows[0].cells[sortCells[tableId][i]].innerHTML.replace(/ <span style=\"font-family\: webdings\">[56]<\/span>$/ig, ''); } } var _sort = function(a, b, id) { var param1 = a.cells[id].innerText; var param2 = b.cells[id].innerText; param1 = param1.replace(/[^\d.-]/g, ''); param2 = param2.replace(/[^\d.-]/g, ''); if (param1 == '-' || param1 == '') { return 1; } if (param2 == '-' || param2 == '') { return -1; } //如果兩個參數均為字符串類型 if (isNaN(param1) && isNaN(param2)){ return param1.localeCompare(param2); } //如果參數1為數字,參數2為字符串 if (!isNaN(param1) && isNaN(param2)){ return -1; } //如果參數1為字符串,參數2為數字 if (isNaN(param1) && !isNaN(param2)){ return 1; } //如果兩個參數均為數字 if (!isNaN(param1) && !isNaN(param2)){ if (Number(param1) > Number(param2)) { return 1; } if (Number(param1) == Number(param2)) { return 0; } if (Number(param1) < Number(param2)) { return -1; } } //return a.cells[id].innerText - b.cells[id].innerText; } var _rsort = function(a, b, id) { var param1 = b.cells[id].innerText; var param2 = a.cells[id].innerText; param1 = param1.replace(/[^\d.-]/g, ''); param2 = param2.replace(/[^\d.-]/g, ''); if (param1 == '-' || param1 == '') { return -1; } if (param2 == '-' || param2 == '') { return 1; } //如果兩個參數均為字符串類型 if (isNaN(param1) && isNaN(param2)){ return param1.localeCompare(param2); } //如果參數1為數字,參數2為字符串 if (!isNaN(param1) && isNaN(param2)){ return -1; } //如果參數1為字符串,參數2為數字 if (isNaN(param1) && !isNaN(param2)){ return 1; } //如果兩個參數均為數字 if (!isNaN(param1) && !isNaN(param2)){ if (Number(param1) > Number(param2)) { return 1; } if (Number(param1) == Number(param2)) { return 0; } if (Number(param1) < Number(param2)) { return -1; } } //return b.cells[id].innerText - a.cells[id].innerText; } tableSort = { init : function(tableId, cells, rows) { oTable[tableId] = $(tableId); sortCells[tableId] = cells; cellStatus[tableId] = {}; limit[tableId] = rows ? rows : 0; for (var i = 0; i < cells.length; i++) { _addEvent(tableId, cells[i]); _addStyle(tableId, cells[i]); _addTitle(tableId, cells[i]); } if (rows > 0) { for (var i = 1; i < $(tableId).rows.length; i++) { if (i > rows) { $(tableId).rows[i].style.display = 'none'; } } } }, sort : function(tableId, cellId) { _cleanStatus(tableId, cellId); _sortTable(tableId, cellId); } } })(); </script> <style type="text/css"> *{font-size:12px;} </style> <table id="t1" width="400" border="1"> <tr> <td>第一列</td> <td>第二列</td> <td>第三列</td> <td>第四列</td> <td>第五列</td> </tr> <tr> <td>1</td> <td>4</td> <td>-0.1</td> <td>2009-01-01</td> <td>-</td> </tr> <tr> <td>2</td> <td>3</td> <td>-0.3</td> <td>2008-01-01</td> <td>-</td> </tr> <tr> <td>3</td> <td>2</td> <td>4</td> <td>2008-03-01</td> <td>-</td> </tr> <tr> <td>4</td> <td>1</td> <td>-0.1</td> <td>2009-02-01</td> <td>-</td> </tr> </table> <br /> <table id="t2" width="400" border="1"> <tr> <td>第一列</td> <td>第二列</td> <td>第三列</td> <td>第四列</td> <td>第五列</td> </tr> <tr> <td>1</td> <td>4</td> <td>-0.1</td> <td>2009-01-01</td> <td>-</td> </tr> <tr> <td>2</td> <td>3</td> <td>-0.3</td> <td>2008-01-01</td> <td>-</td> </tr> <tr> <td>3</td> <td>2</td> <td>4</td> <td>2008-03-01</td> <td>-</td> </tr> <tr> <td>4</td> <td>1</td> <td>-0.1</td> <td>2009-02-01</td> <td>-</td> </tr> </table> <script type="text/javascript"> tableSort.init('t1', [0, 1, 2, 3]); tableSort.init('t2', [0, 1, 2, 3], 2); </script>
所屬頻道:
層和布局特效
/
更新時間:2012-12-23
[收藏]
[報錯]
[返回列表]
相關
層和布局特效
:
表格內容排序sortTable
行變成列,列變成行
文本輸入限制
拆分單元格
控制表格內的滾動條
顏色交替的表格
JS計算里面有多少個
極酷的表格
會動的表格
可拖動單元格
變色表格
訪問表格的每個TD
層和布局特效Rss訂閱
特效代碼搜索
層和布局特效推薦
VML圓角圓邊框的實現
讓網頁左右反轉的JS代碼
CSS中first-letter偽類的用法
DIV+CSS一行三列布局的網頁
CSS滑動門及選項卡,布局在同一頁面
純CSS無圖實現DIV邊框平滑陰影
CSS+JS鼠標懸停單元格變色
飄出的廣告窗口,可以自動關閉
CSS實現左右、上下不封閉邊框的表格
Table+CSS實現的TAB選項卡
猜你也喜歡看這些
CSS背景漸變,從左往右漸變
鼠標滑向表格,變換背景圖片
隨機背景顏色的實現
runtimeStyle #079;bject
清爽配色15套
在一定時間內打開一個新的窗口
頁面載入時的進度條效果的實現
網頁風格適時切換
JavaScript點擊圖片自動復制圖片地址
CSS給網頁上的評論文本框加上提醒功能背景圖片
相關鏈接:
復制本頁鏈接
|
搜索自寫的JS表格排序
特效說明:
層和布局模板
-
自寫的JS表格排序
。