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实现后台左侧菜单点击上下滑动显示
Apr 11 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
Jquery中Event对象属性小结
Feb 27 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
React创建组件的三种方式及其区别
Jan 12 Javascript
Vue2.0+ElementUI实现表格翻页的实例
Oct 23 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
Oct 07 Javascript
npm scripts 使用指南详解
Oct 08 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
JS中的一些常用的函数式编程术语
Jun 15 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 Javascript
小程序实现列表倒计时功能
Jan 29 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
php记录代码执行时间(实现代码)
2013/07/05 PHP
php实现的双向队列类实例
2014/09/24 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
PHP时间函数使用详解
2019/03/21 PHP
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
使用console进行性能测试
2015/04/27 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
Python类的基础入门知识
2008/11/24 Python
python sort、sorted高级排序技巧
2014/11/21 Python
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
python如何实现int函数的方法示例
2018/02/19 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
python里运用私有属性和方法总结
2019/07/08 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
.net软件工程师面试题
2015/03/31 面试题
经典优秀个人求职自荐信格式
2013/09/25 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
婚庆主持词大全
2015/06/30 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书