JS實(shí)現(xiàn)table表格數(shù)據(jù)排序功能(可支持動(dòng)態(tài)數(shù)據(jù)+分頁(yè)效果)
asp.net會(huì)經(jīng)常遇到分頁(yè)的效果,尤其是希望實(shí)現(xiàn)靜態(tài)的html分頁(yè)排序(html分頁(yè)相信大家都已經(jīng)有自己的解決方案.在這里就不多說(shuō)).我寫了一個(gè)簡(jiǎn)單的Demo排序.
數(shù)據(jù)就是字母和數(shù)字兩組.(漢字需要找到asc碼) 原理就是利用數(shù)組自帶的sort排序,進(jìn)行表格重組.已在.net mvc 中測(cè)試過(guò).支持分頁(yè).(申明一點(diǎn).只對(duì)當(dāng)前頁(yè)面數(shù)據(jù)排序 無(wú)刷新,對(duì)所有頁(yè)面排序的話,肯定需要刷新.這點(diǎn)我還在解決中.)希望有新想法的高手們,給下指點(diǎn).
下面把html的代碼貼出來(lái):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML xmlns="http://www.w3.org/1999/xhtml"> <HEAD><TITLE>js操作刷新</TITLE> <META http-equiv=Content-Type content="text/html; charset=utf-8" ;> <script language="javaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script> </HEAD> <SCRIPT> //--------------------- 排序 //需要在排序的table上加id="tableNeed",需在排序的列上加onclick="sortt('.?')",在此列所有<td>上加class="?" function sortt(className){ var listName=new Array(); var listNameOld=new Array(); var listTr=new Array(); var listSort=new Array(); var i=1; var b=false; //取得原來(lái)的<tr>,并清空<table> $("#tableNeed tr").each(function(){ listTr.push($(this).html()); }); //得到要排列的列的元素,并在末尾追加此刻的順序(從1開(kāi)始) $(className).each(function(){ listName.push($(this).text()+i); listNameOld.push($(this).text()+i); i++; }); //將要排序的元素排序 mySort(listName); //判斷排序后元素位置是否發(fā)生變化 for(var j=0;j<listName.length;j++){ if(listName[j].substring(listName[j].length-listNameOld[j].length)!=listNameOld[j]){ b=true; break; } } //排序后,根據(jù)先前追加的順序得到此時(shí)<tr>的順序 for(var j=0;j<listName.length;j++){ listSort.push(parseInt(listName[j].substring(listName[j].length-1))); } $("#tableNeed").html(''); //按順序追加<tr>,若排序后元素順序未變化,則倒序追加 $("#tableNeed").append("<tr class='header'>"+listTr[0]+"</tr>"); if(b){ for(var j=0;j<listSort.length;j++){ $("#tableNeed").append("<tr>"+listTr[listSort[j]]+"</tr>"); } }else{ for(var j=listSort.length-1;j>=0;j--){ $("#tableNeed").append("<tr>"+listTr[listSort[j]]+"</tr>"); } } } //首先按字符個(gè)數(shù)排序,然后按相對(duì)應(yīng)的字符大小排序 function mySort(list){ var len=0; var add=""; for(var i=0;i<list.length;i++){ var str=list[i]; if(str.length>len){ len=str.length; } } for(var i=0;i<len;i++){ add+="0" } for(var i=0;i<list.length;i++){ var strOne=add+list[i]; list[i]=strOne.substring(strOne.length-len); } list.sort(); } //---------------------------- </SCRIPT> <BODY> <TABLE id="tableNeed" border=1> <tr><td onclick="sortt('.1')">數(shù)字</td><td onclick="sortt('.2')">字母</td><td onclick="sortt('.3')">數(shù)字和字母</td></tr> <tr><td class="1">11</td><td class="2">ee</td><td class="3">1a</td></tr> <tr><td class="1">22</td><td class="2">gg</td><td class="3">7g</td></tr> <tr><td class="1">33</td><td class="2">cc</td><td class="3">d4</td></tr> <tr><td class="1">44</td><td class="2">aa</td><td class="3">3c</td></tr> <tr><td class="1">55</td><td class="2">dd</td><td class="3">e5</td></tr> <tr><td class="1">66</td><td class="2">ff</td><td class="3">f6</td></tr> <tr><td class="1">77</td><td class="2">hh</td><td class="3">2b</td></tr> <tr><td class="1">88</td><td class="2">bb</td><td class="3">h8</td></tr> </TABLE> </BODY></HTML>
以上所述是小編給大家介紹的JS實(shí)現(xiàn)table表格數(shù)據(jù)排序功能(可支持動(dòng)態(tài)數(shù)據(jù)+分頁(yè)效果) ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- jsp頁(yè)面數(shù)據(jù)分頁(yè)模仿百度分頁(yè)效果(實(shí)例講解)
- nodejs個(gè)人博客開(kāi)發(fā)第六步 數(shù)據(jù)分頁(yè)
- JSP數(shù)據(jù)分頁(yè)導(dǎo)出下載顯示進(jìn)度條樣式
- JS代碼實(shí)現(xiàn)table數(shù)據(jù)分頁(yè)效果
- jsp+servlet+javabean實(shí)現(xiàn)數(shù)據(jù)分頁(yè)方法完整實(shí)例
- 無(wú)JS,完全php面向過(guò)程數(shù)據(jù)分頁(yè)實(shí)現(xiàn)代碼
- JSP數(shù)據(jù)庫(kù)操數(shù)據(jù)分頁(yè)顯示
- jquery+json實(shí)現(xiàn)數(shù)據(jù)列表分頁(yè)示例代碼
- js前臺(tái)分頁(yè)顯示后端JAVA數(shù)據(jù)響應(yīng)
- js對(duì)象實(shí)現(xiàn)數(shù)據(jù)分頁(yè)效果
相關(guān)文章
JavaScript如何動(dòng)態(tài)監(jiān)聽(tīng)DOM元素高度詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript如何動(dòng)態(tài)監(jiān)聽(tīng)DOM元素高度,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-07-07JS根據(jù)生日月份和日期計(jì)算星座的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了JS根據(jù)生日月份和日期計(jì)算星座的簡(jiǎn)單實(shí)現(xiàn)方法,涉及javascript日期時(shí)間與字符串操作相關(guān)技巧,需要的朋友可以參考下2016-11-11JavaScript原生實(shí)現(xiàn)觀察者模式的示例
下面小編就為大家分享一篇JavaScript原生實(shí)現(xiàn)觀察者模式的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12詳解springmvc 接收json對(duì)象的兩種方式
本篇文章主要介紹了springmvc 接收json對(duì)象的兩種方式,具有一定的參考價(jià)值,有需要的可以了解一下。2016-12-12javascript中slice(),splice(),split(),substring(),substr()使用方法
這篇文章主要介紹了javascript中slice(),splice(),split(),substring(),substr()使用方法,需要的朋友可以參考下2015-03-03微信公眾號(hào)中的JSSDK接入及invalid signature等常見(jiàn)錯(cuò)誤問(wèn)題分析(全面解析)
這篇文章主要介紹了微信公眾號(hào)中的JSSDK接入及invalid signature等常見(jiàn)錯(cuò)誤問(wèn)題分析(全面解析),需要的朋友可以參考下2020-04-04