jquery實現(xiàn)表格本地排序的方法
來源:易賢網(wǎng) 閱讀:2876 次 日期:2015-03-13 11:31:42
溫馨提示:易賢網(wǎng)小編為您整理了“jquery實現(xiàn)表格本地排序的方法”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了jquery實現(xiàn)表格本地排序的方法,實例分析了jQuery操作數(shù)組實現(xiàn)本地表格排序的技巧,需要的朋友可以參考下

本文實例講述了jquery實現(xiàn)表格本地排序的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

代碼如下:

<html xmlns="">

<head runat="server">

<title>jquery 表格排序</title>

<style type="text/css">

thead

{

background-color: Blue;

color: White;

}

tr.odd

{

background-color: #ddd;

}

tr.even

{

background-color: #eee;

}

.clickable

{

text-decoration: underline;

}

.hover

{

background-color: #5dd354;

}

.sorted

{

background-color: #ded070;

}

.page-number

{

color: Black;

margin:2px 10px;

padding:2px 5px;

}

.active

{

border:solid 1px red;

background-color:#76a7d2;

}

.pager

{

margin-bottom:10px;

margin-left:20px;

}

</style>

<script type="text/javascript" language="javascript" src="js/jquery1.3.2.js"></script>

<script type="text/javascript" language="javascript">

$(function() {

jQuery.fn.alternateRowColors = function() { //做成插件的形式

$('tbody tr:odd', this).removeClass('even').addClass('odd'); //隔行變色 奇數(shù)行

$('tbody tr:even', this).removeClass('odd').addClass('even'); //隔行變色 偶數(shù)行

return this;

};

$('table.myTable').each(function() {

var $table = $(this); //將table存儲為一個jquery對象

$table.alternateRowColors($table); //在排序時隔行變色

$('th', $table).each(function(column) {

var findSortKey;

if ($(this).is('.sort-alpha')) { //按字母排序

findSortKey = function($cell) {

return $cell.find('sort-key').text().toUpperCase() + '' + $cell.text().toUpperCase();

};

} else if ($(this).is('.sort-numeric')) { //按數(shù)字排序

findSortKey = function($cell) {

var key = parseFloat($cell.text().replace(/^[^\d.]*/, ''));

return isNaN(key) ? 0 : key;

};

} else if ($(this).is('.sort-date')) { //按日期排序

findSortKey = function($cell) {

return Date.parse('1 ' + $cell.text());

};

}

if (findSortKey) {

$(this).addClass('clickable').hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); }).click(function() {

//反向排序狀態(tài)聲明

var newDirection = 1;

if ($(this).is('.sorted-asc')) {

newDirection = -1;

}

var rows = $table.find('tbody>tr').get(); //將數(shù)據(jù)行轉(zhuǎn)換為數(shù)組

$.each(rows, function(index, row) {

row.sortKey = findSortKey($(row).children('td').eq(column));

});

rows.sort(function(a, b) {

if (a.sortKey < b.sortKey) return -newDirection;

if (a.sortKey > b.sortKey) return newDirection;

return 0;

});

$.each(rows, function(index, row) {

$table.children('tbody').append(row);

row.sortKey = null;

});

$table.find('th').removeClass('sorted-asc').removeClass('sorted-desc');

var $sortHead = $table.find('th').filter(':nth-child(' + (column + 1) + ')');

//實現(xiàn)反向排序

if (newDirection == 1) {

$sortHead.addClass('sorted-asc');

} else {

$sortHead.addClass('sorted-desc');

}

//調(diào)用隔行變色的函數(shù)

$table.alternateRowColors($table);

//移除已排序的列的樣式,添加樣式到當前列

$table.find('td').removeClass('sorted').filter(':nth-child(' + (column + 1) + ')').addClass('sorted');

$table.trigger('repaginate');

});

}

});

});

});

//分頁

$(function() {

$('table.paginated').each(function() {

var currentPage = 0;

var numPerPage = 10;

var $table = $(this);

$table.bind('repaginate', function() {

$table.find('tbody tr').hide().slice(currentPage * numPerPage, (currentPage + 1) * numPerPage).show();

});

var numRows = $table.find('tbody tr').length;

var numPages = Math.ceil(numRows / numPerPage);

var $pager = $('<div class="pager"></div>');

for (var page = 0; page < numPages; page++) {

$('<span class="page-number"></span>').text(page + 1)

.bind('click', { newPage: page }, function(event) {

currentPage = event.data['newPage'];

$table.trigger('repaginate');

$(this).addClass('active').siblings().removeClass('active');

}).appendTo($pager).addClass('clickable');

}

$pager.insertBefore($table);

$table.trigger('repaginate');

$pager.find('span.page-number:first').addClass('active');

});

});

</script>

</head>

<body>

<form id="form1" runat="server">

<div>

<table class="myTable paginated">

<thead>

<tr>

<th class="sort-alpha">

Last Name

</th>

<th class="sort-alpha">

First Name

</th>

<th>

Email

</th>

<th class="sort-numeric">

Due

</th>

<th class="sort-date">

Date

</th>

<th>

Web Site

</th>

</tr>

</thead>

<tbody>

<tr>

<td>

tmith

</td>

<td>

erthn

</td>

<td>

</td>

<td>

$34.00

</td>

<td>

14 2009

</td>

<td>

</td>

</tr>

<tr>

<td>

TTmith

</td>

<td>

BJohn

</td>

<td>

</td>

<td>

$50.00

</td>

<td>

Mar 2009

</td>

<td>

</td>

</tr>

<tr>

<td>

CSmith

</td>

<td>

John

</td>

<td>

</td>

<td>

$50.00

</td>

<td>

Mar 2009

</td>

<td>

</td>

</tr>

<tr>

<td>

Smith

</td>

<td>

John

</td>

<td>

</td>

<td>

$50.00

</td>

<td>

f32 2009

</td>

<td>

ffttp://www.jb51.net

</td>

</tr>

</tbody>

</table>

</div>

</form>

</body>

</html>

希望本文所述對大家的jquery程序設計有所幫助。

更多信息請查看IT技術專欄

更多信息請查看腳本欄目
易賢網(wǎng)手機網(wǎng)站地址:jquery實現(xiàn)表格本地排序的方法

2025國考·省考課程試聽報名

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