Web_Design 板


LINE

利用Jquery(javascript)达成网页表格排序功能(table sort) 网志好读版: http://airnote.istory.tw/2012/03/tablesort-jqueryjavascript.html 最近刚好在进行一些网页设计的工作,其中有牵扯到资料表格排序的问题, 一般都是直接在query资料库时直接排序,或是用php排序, 但是只要重新排序一次就等於网页重新读取一次(重新做一次计算), 所以就想利用 Jquery(javascript) 来减少资源的消耗。 这边就分享一个简单的Jquery(javascript)通用表格排序的程式。 程式原理: 此程式主要是排序已经存在的html table,先读取每个表格内的内容然後做排序, 最後在修改原本表格的内容。 使用方法: 0.假设目前网站有两个表格 Name Score Stella 85 Andy 100 Melo 59 Sophie 95 Alice 55 ================================================================== Name Score Marry 100 Apple 85 Melo 59 Sophie 95 Alice 55 1.先引入jquery <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"> </script> 2.将程式载入 <script type="text/javascript"> /**************** Javascript function with jquery *************** Function name: table_sort([select_table_name]) Author: Andy History: 2012/03/22 First relased at AirNote ****************************************************************/ function table_sort(select){ var table_data = new Array() $(select+" tr:gt(0)").each(function(){ var i = table_data.length table_data[i] = new Array() $(this).find("td").each(function(){ var j = table_data[i].length table_data[i][j] = new Object() table_data[i][j].value = $(this).html() table_data[i][j].className = $(this).attr("class") if(table_data[i][j].className == undefined) table_data[i][j].className = "" if(table_data[i][j].value == undefined) table_data[i][j].value = "" }) }) var sort_asc = 1; $(select+" tr:eq(0) td,"+select+" tr:eq(0) th").click(function(){ sort_asc *= -1 var idx = $(this).index() var sort_type = (table_data[0][idx].value[0].charCodeAt(0) > 47 && table_data[0][idx].value[0].charCodeAt(0) < 58) ? "num":"text" table_data.sort(function(a,b){ if(a[idx].value == "") return (-1)*sort_asc if(sort_type == "num"){ return (a[idx].value - b[idx].value)*sort_asc }else{ var compare_length = a[idx].value.length > b[idx].value.length ? a[idx].value.length : b[idx].value.length for(var i=0;i < compare_length;i++){ var a_code = a[idx].value.charCodeAt(i) var b_code = b[idx].value.charCodeAt(i) if(a_code == b_code && i == (compare_length - 1)) return (a[idx].value.length > b[idx].value.length ? -1 : 1)*sort_asc else if(a_code != b_code) return (a_code - b_code)*sort_asc } } }) var i = 0 var j = 0 $(select+" tr:gt(0)").each(function(){ $(this).find("td").each(function(){ $(this).html(table_data[i][j].value) $(this).attr("class",table_data[i][j].className) j++ }) j=0 i++ }) }) } </script> 3.呼叫设定排序 function table_sort("#mytable") 参数为选取表格的名称,用法与CSS选择相同,请使用#选择 Id name EX: #myTable 这样套用的表格,点击最上面一列就可以整栏排序 4. 完成!! 观看范例: http://m.istory.tw/published/table_sort.html PS 1. 此程式会自动判断栏位的第一个字元,为数字则数字排列,为文字则文字排列。 还有其他问题的话都可以发问喔!! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.239.247
1F:→ Canboo:基本上如果资料有分页的话,tablesorter就很难用了 03/22 13:00
2F:→ gwokae:功能跟这个plugin好相似 http://tablesorter.com/docs/ 03/25 00:10
3F:→ tyf99:应该要判断整个 column 的内容,才决定排序的是文字或数字 03/25 01:14
4F:→ dingyuchi:用datatable 03/28 23:42







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP