jquery 操作表格实现代码(多种操作打包)


Posted in Javascript onMarch 20, 2011
jquery 操作表格实现代码(多种操作打包)
 
jquery 操作表格实现代码(多种操作打包)
 
 
代码很简单,在附件中,各位可以下载后直接运行.
<script type="text/javascript" language="javascript"> 
$(function() { 
jQuery.fn.alternateRowColors = function() { //做成插件的形式 
$('tbody tr:odd', this).removeClass('even').addClass('odd'); //隔行变色 奇数行 
$('tbody tr:even', this).removeClass('odd').addClass('even'); //隔行变色 偶数行 
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')) { //按数字排序 
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() { 
//反向排序状态声明 
var newDirection = 1; 
if ($(this).is('.sorted-asc')) { 
newDirection = -1; 
} 
var rows = $table.find('tbody>tr').get(); //将数据行转换为数组 
$.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) + ')'); 
//实现反向排序 
if (newDirection == 1) { 
$sortHead.addClass('sorted-asc'); 
} else { 
$sortHead.addClass('sorted-desc'); 
} 
//调用隔行变色的函数 
$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>

打包下载地址
Javascript 相关文章推荐
jquery 全局AJAX事件使用代码
Nov 05 Javascript
JS的千分位算法实现思路
Jul 31 Javascript
js获取会话框prompt的返回值的方法
Jan 10 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
Dec 18 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
Aug 02 Javascript
jQuery响应滚动条事件功能示例
Oct 14 jQuery
javascript按钮禁用和启用的效果实例代码
Oct 29 Javascript
vue路由组件按需加载的几种方法小结
Jul 12 Javascript
vue-swiper的使用教程
Aug 30 Javascript
Vue.js如何使用Socket.IO的示例代码
Sep 05 Javascript
vue全屏事件开发详解
Jun 17 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
Mar 20 #Javascript
jquery图片上下tab切换效果
Mar 18 #Javascript
javascript一些实用技巧小结
Mar 18 #Javascript
jquery获取下拉列表的值为null的解决方法
Mar 18 #Javascript
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
Mar 17 #Javascript
javascript定时保存表单数据的代码
Mar 17 #Javascript
eval与window.eval的差别分析
Mar 17 #Javascript
You might like
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
php实现插入排序
2015/03/29 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
python读写ini文件示例(python读写文件)
2014/03/25 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
Django如何将URL映射到视图
2019/07/29 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
英国计算机商店:Technextday
2019/12/28 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
简单的项目建议书模板
2014/03/12 职场文书
2014年校长工作总结
2014/12/11 职场文书
颐和园导游词400字
2015/01/30 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python
Python源码解析之List
2021/05/21 Python
全网非常详细的pytest配置文件
2022/07/15 Python