首页 >web前端 >js教程 >jQuery+Ajax实现表格数据标题排序

jQuery+Ajax实现表格数据标题排序

php中世界最好的语言
php中世界最好的语言原创
2018-04-26 09:26:452442浏览

这次给大家带来jQuery+Ajax实现表格数据标题排序,jQuery+Ajax实现表格数据标题排序的注意事项有哪些,下面就是实战案例,一起来看一下。

表格大家都十分熟悉,如今的CSS也使得表格的布局越来越光彩耀人。但是,无论如何,都掩饰不了那些包装下的死板。 

那么如何让那些死板的数据 更具有可读性、可用性,能够让我们那些数据在“动”呢?
下面我们使用jquery+ajax 来为表格注入些活力。主要实现的目的就是:将表格的列标题转化为按钮,点击不同的列标题,便按相应的列对数据进行排序。比如学生信息表,我点击“生日”列,这张表便按生日排序将结果呈现在我们面前。使用ajax来调用本页也避免了刷新页面所带来的折磨。
下面我给出最基本的jsp页面
jQuery+Ajax实现表格数据标题排序 

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<base href="<%=basePath%>"> 
<title>My JSP &#39;sorttable.jsp&#39; starting page</title> 
<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
<meta http-equiv="description" content="This is my page"> 
<!-- <link rel="stylesheet" type="text/css" href="styles.css"> 
--> 
<script type="text/javascript" src="js/jquery-1.4.4.js"></script> 
</head> 
<body> 
<table class = "sorttable" style="background-color: gray;color: white;"> 
<thead> 
<tr > 
<th></th> 
<th class="sort-alpha">Title</th> 
<th>Author</th> 
<th>PublishDate</th> 
<th>Price</th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<td><img src="<%=path %>/images/javascript.jpg" width="40" height="50" alt="JavaScript" /></td> 
<td>JavaScript</td> 
<td> Douglas Crockford </td> 
<td> May 2008</td> 
<td>$31.02</td> 
</tr> 
<tr> 
<td><img src="<%=path %>/images/Ajax.jpg" width="40" height="50" alt="AJAX and PHP:Building Responsive Web Applications" /></td> 
<td>AJAX and PHP:Building Responsive Web Applications</td> 
<td>Cristian Darie,Mihak Bucica</td> 
<td> Mar 2006</td> 
<td>$31.02</td> 
</tr> 
<tr> 
<td><img src="<%=path %>/images/Learning.jpg" width="40" height="50" alt="Learning Mambo" /></td> 
<td>Learning Mambo</td> 
<td>Douglas Paterson</td> 
<td> Mar 2006</td> 
<td>$31.02</td> 
</tr> 
<tr> 
<td><img src="<%=path %>/images/Think.jpg" width="40" height="50" alt="Thinking in java" /></td> 
<td>Thinking in java</td> 
<td>Bruce Eckel </td> 
<td> Feb 2006</td> 
<td>$33.02</td> 
</tr> 
<tr> 
<td><img src="<%=path %>/images/jQuery.jpg" width="40" height="50" alt="jQuery in Action, Second Edition" /></td> 
<td>jQuery in Action, Second Edition</td> 
<td>Bear Bibeault / Yehuda Katz 
</td> 
<td> Apr 2010</td> 
<td>$35.02</td> 
</tr> 
</tbody> 
</table> 
</body> 
</html>


第一步:为表格添加奇偶行交替背景
jQuery+Ajax实现表格数据标题排序 

<style type="text/css"> 
.even{ 
background-color: #E8A824; 
} 
.odd{ 
background-color:#74411B; 
} 
</style>

第二步:按字母排序
实现基于表格的Title列进行排序

<thclass="sort-alpha">Title</th>

为Title定义了一个sort-alpha类

<script type="text/javascript" language="javascript"> 
$(
document
).ready(function(){ 
var alternateRowColors = function($table){ 
$(&#39;tbody tr:odd&#39;,$table).removeClass(&#39;even&#39;).addClass(&#39;odd&#39;); 
$(&#39;tbody tr:even&#39;,$table).removeClass(&#39;odd&#39;).addClass(&#39;even&#39;) 
}; 
$(&#39;table.sorttable&#39;).each(function (){ 
var $table =$(this); 
alternateRowColors($table); 
$(&#39;th&#39;,$table).each(function(column){ 
var $header = $(this); 
if($header.is(&#39;.sort-alpha&#39;)){ 
$header.addClass(&#39;clickable&#39;).hover(function(){ 
$header.addClass(&#39;hover&#39;); 
},function(){ 
$header.removeClass(&#39;hover&#39;); 
}).click(function(){ 
var rows = $table.find(&#39;tbody>tr&#39;).get(); 
rows.sort(function(a,b){ 
var keyA =$(a).children(&#39;td&#39;).eq(column).text().toUpperCase(); 
var keyB =$(b).children(&#39;td&#39;).eq(column).text().toUpperCase(); 
if(keyA<keyB) return -1; 
if(keyA>keyB) return 1; 
return 0; 
}); 
$.each(rows,function(index,row){ 
$table.children(&#39;tbody&#39;).append(row); 
}); 
alternateRowColors($table); 
}); 
} 
}); 
}); 
}); 
</script>

最后
当你点击Title时
最终效果:
jQuery+Ajax实现表格数据标题排序 

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

jquery实现表格排序+实时搜索功能

sortElements实现table排序步骤详解

jquery动态操作表格行的方法(附代码)

以上是jQuery+Ajax实现表格数据标题排序的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn