jQuery+Ajax实现表格数据不同列标题排序(为表格注入活力)
2023-06-13 09:14:51 时间
表格大家都十分熟悉,如今的CSS也使得表格的布局越来越光彩耀人。但是,无论如何,都掩饰不了那些包装下的死板。
那么如何让那些死板的数据更具有可读性、可用性,能够让我们那些数据在“动”呢?
下面我们使用jquery+ajax来为表格注入些活力。主要实现的目的就是:将表格的列标题转化为按钮,点击不同的列标题,便按相应的列对数据进行排序。比如学生信息表,我点击“生日”列,这张表便按生日排序将结果呈现在我们面前。使用ajax来调用本页也避免了刷新页面所带来的折磨。
下面我给出最基本的jsp页面
详细代码如下
复制代码代码如下:
那么如何让那些死板的数据更具有可读性、可用性,能够让我们那些数据在“动”呢?
下面我们使用jquery+ajax来为表格注入些活力。主要实现的目的就是:将表格的列标题转化为按钮,点击不同的列标题,便按相应的列对数据进行排序。比如学生信息表,我点击“生日”列,这张表便按生日排序将结果呈现在我们面前。使用ajax来调用本页也避免了刷新页面所带来的折磨。
下面我给出最基本的jsp页面
详细代码如下
<%@pagelanguage="java"import="java.util.*"pageEncoding="ISO-8859-1"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>MyJSP"sorttable.jsp"startingpage</title>
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="Thisismypage">
<!--
<linkrel="stylesheet"type="text/css"href="styles.css">
-->
<scripttype="text/javascript"src="js/jquery-1.4.4.js"></script>
</head>
<body>
<tableclass="sorttable"style="background-color:gray;color:white;">
<thead>
<tr>
<th></th>
<thclass="sort-alpha">Title</th>
<th>Author</th>
<th>PublishDate</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td><imgsrc="<%=path%>/images/javascript.jpg"width="40"height="50"alt="JavaScript"/></td>
<td>JavaScript</td>
<td>DouglasCrockford</td>
<td>May2008</td>
<td>$31.02</td>
</tr>
<tr>
<td><imgsrc="<%=path%>/images/Ajax.jpg"width="40"height="50"alt="AJAXandPHP:BuildingResponsiveWebApplications"/></td>
<td>AJAXandPHP:BuildingResponsiveWebApplications</td>
<td>CristianDarie,MihakBucica</td>
<td>Mar2006</td>
<td>$31.02</td>
</tr>
<tr>
<td><imgsrc="<%=path%>/images/Learning.jpg"width="40"height="50"alt="LearningMambo"/></td>
<td>LearningMambo</td>
<td>DouglasPaterson</td>
<td>Mar2006</td>
<td>$31.02</td>
</tr>
<tr>
<td><imgsrc="<%=path%>/images/Think.jpg"width="40"height="50"alt="Thinkinginjava"/></td>
<td>Thinkinginjava</td>
<td>BruceEckel</td>
<td>Feb2006</td>
<td>$33.02</td>
</tr>
<tr>
<td><imgsrc="<%=path%>/images/jQuery.jpg"width="40"height="50"alt="jQueryinAction,SecondEdition"/></td>
<td>jQueryinAction,SecondEdition</td>
<td>BearBibeault/YehudaKatz
</td>
<td>Apr2010</td>
<td>$35.02</td>
</tr>
</tbody>
</table>
</body>
</html>
第一步:为表格添加奇偶行交替背景
<styletype="text/css">
.even{
background-color:#E8A824;
}
.odd{
background-color:#74411B;
}
</style>
第二步:按字母排序
实现基于表格的Title列进行排序
<thclass="sort-alpha">Title</th>
为Title定义了一个sort-alpha类
<scripttype="text/javascript"language="javascript">
$(document).ready(function(){
varalternateRowColors=function($table){
$("tbodytr:odd",$table).removeClass("even").addClass("odd");
$("tbodytr:even",$table).removeClass("odd").addClass("even")
};
$("table.sorttable").each(function(){
var$table=$(this);
alternateRowColors($table);
$("th",$table).each(function(column){
var$header=$(this);
if($header.is(".sort-alpha")){
$header.addClass("clickable").hover(function(){
$header.addClass("hover");
},function(){
$header.removeClass("hover");
}).click(function(){
varrows=$table.find("tbody>tr").get();
rows.sort(function(a,b){
varkeyA=$(a).children("td").eq(column).text().toUpperCase();
varkeyB=$(b).children("td").eq(column).text().toUpperCase();
if(keyA<keyB)return-1;
if(keyA>keyB)return1;
return0;
});
$.each(rows,function(index,row){
$table.children("tbody").append(row);
});
alternateRowColors($table);
});
}
});
});
});
</script>
最后
当你点击Title时
最终效果:
其他类型的排序如下:
相关文章
- jQuery基础
- JQuery的delegate事件参数说明[通俗易懂]
- jquery选择器用法_jQuery属性选择器
- jquery 圆形进度条详解编程语言
- jquery复选框checkbox实现删除详解编程语言
- jQuery Ajax 实例 ($.ajax、$.post、$.get)详解编程语言
- jQuery的强大选择器小结
- Jquery+CSS创建流动导航菜单FluidNavigation
- jquery元素相对定位代码
- 基于PHP+Jquery制作的可编辑的表格的代码
- jquery选项卡效果新手代码
- jQuery操作select的实例代码
- jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
- jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
- Jquery动态进行图片缩略的原理及实现
- UpdatePanel和jQuery不兼容局部刷新jquery失效
- jquery实现checkbox全选/全不选的通用写法
- jQuery的live()方法对hover事件的处理示例
- jQuery基于当前元素进行下一步的遍历
- jQuery中;function($,undefined)前面的分号的用处
- 推荐一款jQuery插件模板
- jQuery实现倒计时按钮功能代码分享
- jquery实现一个简单好用的弹出框