資源描述:
《Jquery表格排序插件,支持快速排序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、/***表格排序Jquery插件*插件名稱:tableSort*作者:wjy*Email:001100567@163.com*日期:2010-12*使用方法:$('#myTableId').tableSort({col:1,order:'desc',method:'advance',type:'string',attr:'class'})*參數(shù)選項(xiàng)說明:*col:排序的列,從0開始*order:排序順序,升序:asc、降序:desc*method:簡(jiǎn)單排序:simply,高級(jí)排序:advance*type:數(shù)字排
2、序:number,字符串排序:string*attr:單元格排序關(guān)鍵字屬性名稱,若缺省,則使用單元格文字排序**注意:表格排序部分必須包含在
標(biāo)簽之內(nèi).**/(function($){$.fn.tableSort=function(options){//默認(rèn)選項(xiàng)vardefaults={col:"0",//排序列order:"desc",//升序asc、降序descmethod:"advance",//簡(jiǎn)單排序:simply,高級(jí)排序:advancetype:"string",//數(shù)字
3、排序:number,字符串排序:stringattr:"",//單元格排序關(guān)鍵字屬性}//排序方式標(biāo)識(shí)varorder;//排序表格的Jquery對(duì)象var$table;//選項(xiàng)融合varoptions=$.extend(defaults,options);//排序開始returnthis.each(function(){$table=$(this);if(options.order=='asc'){order=-1;}else{order=1;}if(options.method=='simple'){//調(diào)用
4、選擇排序selectSort()}elseif(options.method=='advance'){//調(diào)用快速排序quickSort()}else{//默認(rèn)快速排序quickSort()}});/***以下為私有函數(shù)*///比較大小函數(shù)functioncompare(v1,v2){if(options.type=='number'){v1=parseFloat(v1);v2=parseFloat(v2);}if(v1>v2)return1;elseif(v1==v2)return0;elsereturn-1;
5、}//獲得單元格排序關(guān)鍵字functiongetTdValue($tr){if(options.attr=='')return$tr.find('td').eq(options.col).text();elsereturn$tr.find('td').eq(options.col).attr(options.attr);}//選擇排序?qū)崿F(xiàn)函數(shù)functionselectSort(){var$tr=$table.find('tbody').find('tr');vartrLen=$tr.size();for(var
6、i=0;i0){pos=j;}}//交換if(compare(getTdValue($tr.eq(pos)),getTdValue($tr.eq(i)))*order>0){vartemp1=$tr.eq(pos).clone();vartemp2=$tr.eq(i).clone(
7、);$tr.eq(pos).replaceWith(temp2);$tr.eq(i).replaceWith(temp1);//下面這句很重要$tr=$table.find('tbody').find('tr');}}}//快速排序遞歸實(shí)現(xiàn)functiondoQuickSort(left,right){var$tr=$table.find('tbody').find('tr');vartrLen=$tr.size(); vari,j,middle; i=left; j=right; middle=left
8、; do{ while((compare(getTdValue($tr.eq(i)),getTdValue($tr.eq(middle)))*order>0)&&(ileft))