jquery表格排序插件

 

网上找了个表格排序,不过升序和降序存在问题,排序时间不对,因此,写了一个表格排序插件

可以根据任意字段进行排序,由于是js排序,因此是无刷新,并且速度比较快

效果图:






默认使用例子:

<script type="text/javascript" src="/static/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/js/jquery.table.sort.js"></script>
$(function(){
    $(".DataGrid").sort();
});

带参数例子:

<script type="text/javascript" src="/static/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/js/jquery.table.sort.js"></script>
$(function(){
    $(".DataGrid").sort({
        'ascImgUrl':'/static/images/bullet_arrow_up.png',
	'descImgUrl':'/static/images/bullet_arrow_down.png',
        'engRow':-1,
        'isHeaderTh':true
    });
});


参数Api详解:

参数名类型描述
ascImgUrlstring升序图片地址
descImgUrlstring降序图片地址
endRowint最后一行(负数代表倒数第几行)
isHeaderThboolean头部标题是否是th


带html例子:

<!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=utf-8" />
<title>活动编辑器</title>
<link rel="stylesheet" href="css/editorBase.css" type="text/css">
<link rel="stylesheet" href="css/kickstart-buttons.css" type="text/css" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.table.sort.js"></script>
<script type="text/javascript" src="js/artDialog.js?skin=blue"></script>
<script type="text/javascript">
	$(function(){
		$(".DataGrid").sort({
			'ascImgUrl':'images/bullet_arrow_up.png',  //升序图片
			'descImgUrl':'images/bullet_arrow_down.png', //降序图片
			'endRow':-1		//需要排序的最后一行  -1代表  倒数第二行
		});
		//全选
		$("#checkAll").click(function(){
			$(":checkbox").attr("checked",$(this).attr("checked"));
		});
	});
</script>
</head>
<body>
<form action="/index.php?app=editor&m=Common&action=outputConfig" method="post">
	<font color="red">新活动不能直接使用新活动配置表,只能新建或者复制活动</font>
<table class="DataGrid" cellspacing="0" width="100%">
	<thead>
		<tr>
			<th colspan="9">活动列表</th>
		</tr>
		<tr>
			<th><input type="checkbox" id="checkAll"></input></th>
			<th sort="true">ID</th>
			<th sort="true">活动名</th>
			<th sort="true">类别</th>
			<th sort="true">开始时间</th>
			<th sort="true">结束时间</th>
			<th width="12%">操作</th>
		</tr>
	</thead>
	<tbody>
		<input type="hidden" name="sortId[]" value="668" />
		<tr  class="odd">
			<td align="center"><input name="id[]" class="checkIds" type="checkbox" value=668></input></td>
		<td>668 </td>
		<td>
			特殊类测试
			 </td>
		<td>特殊类 </td>
		<td>2013-04-19 16:50:00 </td>
		<td>2013-04-10 16:50:00 </td>
        <td>
          	<a  href="/index.php?app=editor&m=Special&action=save&id=668"><font color="#FF0000">修改</font></a> 
            | <a  href="/index.php?app=editor&m=Common&action=copy&id=668"><font color="#FF0000">复制</font></a></font></a>
            | <a  href="/index.php?app=editor&m=Common&action=delete&id=668" class="delete">删除</font></a> 
        </td>
	</tr>
		<input type="hidden" name="sortId[]" value="667" />
		<tr>
			<td align="center"><input name="id[]" class="checkIds" type="checkbox" value=667></input></td>
		<td>667 </td>
		<td>
			<font color=red>测试</font>
			 </td>
		<td>排行榜类 </td>
		<td>2013-04-01 16:41:00 </td>
		<td>2013-04-11 16:41:00 </td>
        <td>
          	<a  href="/index.php?app=editor&m=Rank&action=save&id=667"><font color="#FF0000">修改</font></a> 
            | <a  href="/index.php?app=editor&m=Common&action=copy&id=667"><font color="#FF0000">复制</font></a></font></a>
            | <a  href="/index.php?app=editor&m=Common&action=delete&id=667" class="delete">删除</font></a> 
        </td>
	</tr>
		<input type="hidden" name="sortId[]" value="666" />
		<tr  class="odd">
			<td align="center"><input name="id[]" class="checkIds" type="checkbox" value=666></input></td>
		<td>666 </td>
		<td>
			<font color=grey>sadasd</font>
			 </td>
		<td>排行榜类 </td>
		<td>2013-04-18 10:16:00 </td>
		<td>2013-04-09 10:16:00 </td>
        <td>
          	<a  href="/index.php?app=editor&m=Rank&action=save&id=666"><font color="#FF0000">修改</font></a> 
            | <a  href="/index.php?app=editor&m=Common&action=copy&id=666"><font color="#FF0000">复制</font></a></font></a>
            | <a  href="/index.php?app=editor&m=Common&action=delete&id=666" class="delete">删除</font></a> 
        </td>
	</tr>
		<input type="hidden" name="sortId[]" value="665" />
		<tr>
			<td align="center"><input name="id[]" class="checkIds" type="checkbox" value=665></input></td>
		<td>665 </td>
		<td>
			<font color=red>测试</font>
			 </td>
		<td>特殊类 </td>
		<td>2013-03-30 17:56:00 </td>
		<td>2013-05-14 17:56:00 </td>
        <td>
          	<a  href="/index.php?app=editor&m=Special&action=save&id=665"><font color="#FF0000">修改</font></a> 
            | <a  href="/index.php?app=editor&m=Common&action=copy&id=665"><font color="#FF0000">复制</font></a></font></a>
            | <a  href="/index.php?app=editor&m=Common&action=delete&id=665" class="delete">删除</font></a> 
        </td>
	</tr>
		<input type="hidden" name="sortId[]" value="664" />
		<tr  class="odd">
			<td align="center"><input name="id[]" class="checkIds" type="checkbox" value=664></input></td>
		<td>664 </td>
		<td>
			<font color=red>测试</font>
			 </td>
		<td>特殊类 </td>
		<td>2013-03-30 17:56:00 </td>
		<td>2013-05-14 17:56:00 </td>
        <td>
          	<a  href="/index.php?app=editor&m=Special&action=save&id=664"><font color="#FF0000">修改</font></a> 
            | <a  href="/index.php?app=editor&m=Common&action=copy&id=664"><font color="#FF0000">复制</font></a></font></a>
            | <a  href="/index.php?app=editor&m=Common&action=delete&id=664" class="delete">删除</font></a> 
        </td>
	</tr>
	 
		</tbody>
	<tfoot>
		<tr>
			<td> </td>
			<td colspan="11"><input type="submit" id="saveSort" value="保存"></td>
		</tr>
	</tfoot>
</table>
	
<br />
</form>
</body>
</html>



jquery.table.sort.js代码:

/**
 * jquery表格插件
 * @author ZouHao
 * @param ascImgUrl  升序图片地址
 * @param descImgUrl 降序图片地址
 * 例子:
 * 1:默认使用语法
 * $("table").sort();
 * 2:参数使用语法
 * $("table").sort({
 * 		'ascImgUrl':'/static/images/bullet_arrow_up.png',
		'descImgUrl':'/static/images/bullet_arrow_down.png',
		'endRow':0,		//最后一行
		'isHeaderTh':true    //头部是th或者td
 * });
 */
;(function ($) {  
	$.fn.sort = function (options) {  
		var settings = $.extend({
			'ascImgUrl':'/static/images/bullet_arrow_up.png', //升序图片
			'descImgUrl':'/static/images/bullet_arrow_down.png', //降序图片
			'endRow':0,		//最后一行
			'isHeaderTh':true    //头部是th或者td
		},options);
		init(this);
		function init(p){
			//初始化一些变量
			var node=settings.isHeaderTh?'th':'td';
			var trList=$(p).find("tr "+node+"[sort='true']");
			if(settings.endRow==0){
				settings.endRow=$(p).find("tr").size();
			}else if(settings.endRow<0){
				settings.endRow=$(p).find("tr").size()+settings.endRow;
			}else{
				settings.endRow=$(p).find("tr").size()-settings.endRow;
			}
			//初始化点击表格头部事件
			trList.click(function(){
				//获取当前行数
				settings.startRow=$(this).parent().index();
				settings.index=$(this).index();
				if($(this).find("img").size()==2){
					addImg(trList);
					removeImg(this,'asc');
					changeTableBody(p,'asc');
				}else{
					if($(this).find("img").attr("src")==settings.ascImgUrl){
						addImg(trList);
						removeImg(this,'desc');
						changeTableBody(p,'desc');
					}else{
						addImg(trList);
						removeImg(this,'asc');
						changeTableBody(p,'asc');
					}
				}
			});
			//初始化头部图片
			addImg(trList);
		}
		//将数据进行排序
		function changeTableBody(p,sort){
			data=new Array();
			//所选的行
			var trBodyList=$(p).find("tr:lt("+settings.endRow+"):gt("+settings.startRow+")");
			trBodyList.each(function(i){
				data[i]=new Array();
				$(this).find("td").each(function(j){
					data[i][j]=$(this).html();
				});
			});
			data.sort(function(x, y){  
				if(sort=='asc'){
					return x[settings.index].localeCompare(y[settings.index]);  
				}else{
					return y[settings.index].localeCompare(x[settings.index]);  
				}
			});
			trBodyList.each(function(i){
				$(this).find("td").each(function(j){
					$(this).html(data[i][j]);
				});
			});
		}
		/**
		 * 为每个表格头部添加图片
		 */
		function addImg(trList){
			trList.find("img").remove();
			trList.append('<img src="'+settings.ascImgUrl+'" style="width:8px;height:8px;" /><img src="'+settings.descImgUrl+'" style="width:8px;height:8px;" />')
		}
		/**
		 * 移出当前点击表格升序/降序图片
		 */
		function removeImg(p,sort){
			var imgUrl=sort=='desc'?settings.ascImgUrl:settings.descImgUrl;
			$(p).find("img").each(function(){
				if($(this).attr("src")==imgUrl){
					$(this).remove();
					return false;
				}
			});
		}
	};  
})(jQuery); 

demo:
下载地址:http://download.csdn.net/detail/zouhao619/5211792


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值