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 相关文章推荐
js 解决“options为空或不是对象”
Dec 22 Javascript
jquery获得下拉框值的代码
Aug 13 Javascript
通过javascript获取iframe里的值示例代码
Jun 24 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
Mar 04 Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 Javascript
深入浅出讲解ES6的解构
Aug 03 Javascript
React实现双向绑定示例代码
Sep 19 Javascript
jQuery按需加载轮播图(web前端性能优化)
Feb 17 Javascript
浅谈React Native 中组件的生命周期
Sep 08 Javascript
vue  directive定义全局和局部指令及指令简写
Nov 20 Javascript
Element UI框架中巧用树选择器的实现
Dec 12 Javascript
js prototype深入理解及应用实例分析
Nov 25 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
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
php下使用iconv需要注意的问题
2010/11/20 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
微信小程序位置授权处理方法
2019/06/13 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
Python matplotlib可视化实例解析
2020/06/01 Python
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
联想中国官方商城:Lenovo China
2017/10/18 全球购物
Java基础面试题
2014/07/19 面试题
班级德育工作实施方案
2014/02/21 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
详解SQL报错盲注
2022/07/23 SQL Server
Redis主从复制操作和配置详情
2022/09/23 Redis