问个很简单的Jquery问题

问题描述

这个是对表格的排序功能,再不重新加载的情况下实现点击title就能对表格重新排序,我新弄了个testtable的表,想在重绘表格的时候也把内容复制到testtable里面去,但是却不行,大家注意下标注的两句,交换下位置表现就不一样了,请高手赐教啊!!!!另外其中标注的3这句,get()方法到底做了什么还是不太清楚啊。。。rows是不是一个关联数组了?以下是代码,请高手帮忙哈~~~偶系菜鸟<html><head><title>Sortandpage</title><scripttype="text/javascript"src="jquery.js"></script><scripttype="text/javascript">functionshowarr(arr){varrsl;for(vari=0;i<arr.length;i++){rsl+=arr[i]+",";}returnrsl;}$(document).ready(function(){$('#testarraya').click(function(){vararr=[52,9,3,48,76,35];arr.sort(function(a,b){if(a<b){return-1;}if(a>b){return1;}return0;});varstr=arr.join(',');//document.write(html);$('#result').append(str);returnfalse;});$(document).ready(function(){$('table.sortable').each(function(){var$table=$(this);$('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();//--------------------3rows.sort();$.each(rows,function(index,row){$('#testtable').children('tbody').append(row);//-----------------------1$table.children('tbody').append(row);//-----------------------2});returnfalse;});}});});});$(document).ready(function(){$('table.sortabletbodytr:odd').addClass('odd');$('table.sortabletbodytr:even').addClass('even');});});</script><style>.sortable{font-size:12pt;font-family:Verdana;color:#ccc;}.sortablethead{font-size:12pt;font-family:Verdana;color:black;}div.wrapper{background-color:#FF0000;}.sortable{border:#ccc1pxsolid;}TRTD{border:#ccc1pxsolid;}TRTH{border:#ccc1pxsolid;}.odd{background-color:green;}.even{background-color:#FF0000;}</style></head><body><divclass="testarray"><divclass="testarray"id="testarray"><h3><ahref="#">testarraysort</a></h3></div><divclass="getable"><divclass="getable"id="getable"><h3><ahref="#">Clicktitletogettable</a></h3></div><divid="result"><tableid="testtable"><tbody></tbody></table></div><divid="mytable"><tableclass="sortable"><thead><tr><th></th><thclass="sort-alpha">Title</th><th>Author(s)</th><th>PublishDate</th><th>Price</th></tr></thead><tbody><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="BuildingWebsiteswithJoomla"/><td>BuildingWebsiteswithJoomla!1.5Beta1</td><td>HagenGraf</td><td>Feb2007</td><td>$40.49</td></tr><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="LearningMambo:Astep-by-stepTutorialtoBuildingYourWebsite"/><td>LearningMambo:Astep-by-stepTutorialtoBuildingYourWebsite</td><td>DouglasPaterson</td><td>Dec2006</td><td>$40.49</td></tr><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="MoodleE-LearningCourseDevelopment"/><td>MoodleE-LearningCourseDevelopment</td><td>WilliamRice</td><td>May2006</td><td>$35.09</td></tr><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="AjaxandPHP:BuildingResponsiveWebApplications"/><td>AjaxandPHP:BuildingResponsiveWebApplications</td><td>CristianDarie,MihaiBucica</td><td>May2006</td><td>$31.49</td></tr><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="OpenVPN:BuildingandIntegratingVirtualPrivatgeNetworks"/><td>OpenVPN:BuildingandIntegratingVirtualPrivatgeNetworks</td><td>MarkusFeilner</td><td>May2006</td><td>$53.99</td></tr></div></body></html>

解决方案

解决方案二:
你的问题主要有以下几个方面:1.rows.sort();此方法需提供一个排序的方法,类似你前面的数组排序。2.$table.children('tbody').append(row);//-----------------------2这行是多余的,加入到testtable,又加回来了,所以感觉页面没动。需去掉。标注的3这句,get()方法是将jquery的Row对象转换为dom对象。实现原样贴合,自己试一下。<html><head><title>Sortandpage</title><scripttype="text/javascript"src="jquery-1.4.4.js"></script><scripttype="text/javascript">functionshowarr(arr){varrsl;for(vari=0;i<arr.length;i++){rsl+=arr[i]+",";}returnrsl;}$(document).ready(function(){$('#testarraya').click(function(){vararr=[52,9,3,48,76,35];arr.sort(function(a,b){if(a<b){return-1;}if(a>b){return1;}return0;});varstr=arr.join(',');//document.write(html);$('#result').append(str);returnfalse;});$(document).ready(function(){$('table.sortable').each(function(){var$table=$(this);$('th',$table).each(function(column){var$header=$(this);varcol=1;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();//--------------------3rows.sort(function(a,b){varcompA=$(a).find("td:eq("+col+")").text();varcompB=$(b).find("td:eq("+col+")").text();return(compA>compB)?1:-1;});$.each(rows,function(index,row){$('#testtable').children('tbody').append(row);//-----------------------1//$table.children('tbody').append(row);//-----------------------2});returnfalse;});}});});});$(document).ready(function(){$('table.sortabletbodytr:odd').addClass('odd');$('table.sortabletbodytr:even').addClass('even');});});</script><style>.sortable{font-size:12pt;font-family:Verdana;color:#ccc;}.sortablethead{font-size:12pt;font-family:Verdana;color:black;}div.wrapper{background-color:#FF0000;}.sortable{border:#ccc1pxsolid;}TRTD{border:#ccc1pxsolid;}TRTH{border:#ccc1pxsolid;}.odd{background-color:green;}.even{background-color:#FF0000;}</style></head><body><divclass="testarray"><divclass="testarray"id="testarray"><h3><ahref="#">testarraysort</a></h3></div><divclass="getable"><divclass="getable"id="getable"><h3><ahref="#">Clicktitletogettable</a></h3></div><divid="result"><tableid="testtable"><tbody></tbody></table></div><divid="mytable"><tableclass="sortable"><thead><tr><th></th><thclass="sort-alpha">Title</th><th>Author(s)</th><th>PublishDate</th><th>Price</th></tr></thead><tbody><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="BuildingWebsiteswithJoomla"/><td>BuildingWebsiteswithJoomla!1.5Beta1</td><td>HagenGraf</td><td>Feb2007</td><td>$40.49</td></tr><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="LearningMambo:Astep-by-stepTutorialtoBuildingYourWebsite"/><td>LearningMambo:Astep-by-stepTutorialtoBuildingYourWebsite</td><td>DouglasPaterson</td><td>Dec2006</td><td>$40.49</td></tr><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="MoodleE-LearningCourseDevelopment"/><td>MoodleE-LearningCourseDevelopment</td><td>WilliamRice</td><td>May2006</td><td>$35.09</td></tr><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="AjaxandPHP:BuildingResponsiveWebApplications"/><td>AjaxandPHP:BuildingResponsiveWebApplications</td><td>CristianDarie,MihaiBucica</td><td>May2006</td><td>$31.49</td></tr><tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="OpenVPN:BuildingandIntegratingVirtualPrivatgeNetworks"/><td>OpenVPN:BuildingandIntegratingVirtualPrivatgeNetworks</td><td>MarkusFeilner</td><td>May2006</td><td>$53.99</td></tr></div></body></html>
解决方案三:
如果我设置了$row='<tr><td><imgsrc="../images/covers/small/11.png"width=49height=61alt="BuildingWebsiteswithJoomla"/><td>ThenewbookwritenbyDreamcast</td><td>Dreamcast</td><td>Feb2007</td><td>$30.49</td>';那么我执行$('#tabletbody').append($row)得到的结果是表格多了一行,但是在排序的时候使用append,得到的结果全是表格重新被描绘了,并没有增加几行,这是为什么?

时间: 2025-01-01 19:08:52

问个很简单的Jquery问题的相关文章

初学c语言图形化编程问个很简单的问题

问题描述 初学c语言图形化编程问个很简单的问题 写37行代码就为了画个围棋棋盘值不值?有更简洁的算法吗? #include<graphics.h> #include<conio.h> #define LEN 30 // 每格间的距离 int main() { int x, y; initgraph(660, 660); // 背景上色 setcolor(BROWN); for(y = 0; y < 660; y++) line(0, y, 660, y); // 绘制边框 s

objective-c-ios 想问一个很简单的异步问题

问题描述 ios 想问一个很简单的异步问题 [manager POST:@""https://www.baidu.com"" parameters:@{} success:^(AFHTTPRequestOperation *operation id responseObject) { NSLog(@""ok1""); } NSLog(@""ok2""); 很明显这段代码 如果打印的话 肯

一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)_jquery

复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.Linq; using System.Xml; using System.Xml.Linq; namespace WebApplication3 { public

求问c语言中如何输入这样的形式,很简单的求回答

问题描述 求问c语言中如何输入这样的形式,很简单的求回答 输入1 2 23 45 23 34 这样的形式, 很简单,但是我一时想不到,求解答,菜鸟求帮助 解决方案 int a; int b; printf("%d %dn",a,b); 解决方案二: 看不懂你输入的内容有什么规律,如果只是想连同空格一起输入,那直接在控制窗口敲空格就行,编译器读取流时若发现空格不是想要读取的内容,会自动跳过.

Symbian学习笔记(21)——原来还有这个工具wsdl2cpp,访问webservice也很简单

在论坛里看到有人问使用wsdl2cpp生成代码,才知道原来symbian提供了一个辅助工具来生成webservice client的代码,比起我上回折腾的自己参考AddressBook例子做的webservice客户端要简单多了,类似于gSOAP的使用. 首先,去forum.nokia.com.cn搜一下WSDL-to-C++_for_S60,这是用于Carbice Vs的工具,不过也可以独立安装,用命令行来生成所需要的代码.下载安装即可. 第二步,运行它的wsdl2cpp工具,得到一些源代码,

60个很实用的jQuery代码开发技巧收集_jquery

由于内容比较多建议用CTRL+F搜索 偶然在网上看到这些不错的jQuery代码开发技巧.原文收集了30个,另外查找的时候发现了还有20个.加上另外十个实用的jQuery代码片段,共60个代码技巧,收集在一起分享给大家. 1. 创建一个嵌套的过滤器 .filter(":not(:has(.selected))") //去掉所有不包含class为.selected的元素 2. 重用你的元素查询 var allItems = $("div.item"); var keep

[置顶]【结果很简单,过程很艰辛】记阿里云Ons消息队列服务填坑过程

    Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的时候,会开放思路.当然不得不说,Ons的.NET接口还很不完善,甚至没有独立在Windos 2008/2012服务器测试过,希望官方加把力. 1.阿里云ONS介绍    ONS(Open Notification Service)即开放消息服务,是基于阿里开源消息中间件MetaQ(Rocke

c语言-C语言 这个好像很简单,但是怎写

问题描述 C语言 这个好像很简单,但是怎写 Description There are N stones in a circle, numbered from 0 to N-1. And there are k coins on the kth stone (For example, there are two coins on the stone with number 1). Now, Lasercat wants to collect as many coins as he can. Ho

js-请问如何通过JS或者jQuery实现鼠标滑到某个div上 页面向左滑动 滑出则停止 向右同理

问题描述 请问如何通过JS或者jQuery实现鼠标滑到某个div上 页面向左滑动 滑出则停止 向右同理 如题. 我在页面上弄了两个div,一个是向左按钮一个是向右按钮. 页面属于左右滑动型. 如何实现鼠标滑到向左的那个div上 页面向左滑动 滑出则停止 向右同理? 谢谢各位大神!拜谢!! 拜托各位看清我的问题好吗,头两个答案根本牛头不对马嘴>.< 我说的是让页面滑动.另外,如果有代码最好--谢谢 解决方案 .on{height:50px;background:#eee}.dd{backgrou