锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 聽聽聽 榪欓噷錛屾垜浠畝鍗曚粙緇嶅嚑縐嶆帓搴忔柟娉曪紝鐩存帴鎻掑叆鎺掑簭銆佸笇鍎挎帓搴忋佸啋娉℃帓搴忋佸揩閫熸帓搴忋佺洿鎺ラ夋嫨鎺掑簭錛屾枃涓墍鎻愬強(qiáng)鐨勪唬鐮佸湪IE6涓嬫祴璇曢氳繃銆?/p>
鐩存帴鎻掑叆鎺掑簭鍩烘湰鎬濇兂
聽聽聽 綆楁硶鎻忚堪
甯屽皵鎺掑簭鍩烘湰鎬濇兂 聽聽聽 綆楁硶鎻忚堪 聽
鍐掓場(chǎng)鎺掑簭鍩烘湰鎬濇兂 聽聽聽 綆楁硶鎻忚堪
蹇熸帓搴忓熀鏈濇兂 聽聽聽 綆楁硶鎻忚堪 鍦ㄦ湰鏈烘祻瑙堝櫒涓鐨勮〃鏍兼暟鎹繘琛屾帓搴?br />鍦╓eb搴旂敤涓紝鏁版嵁浠庢湇鍔″櫒绔繑鍥炲埌瀹㈡埛绔紝浠ヨ〃鏍煎艦寮忚〃鐜板嚭鏉ャ傚鏋滆瀵規(guī)暟鎹泦鎸夋寚瀹氱殑鍒楁帓搴忔樉紺猴紝甯歌鍋氭硶閮芥槸鍚戞湇鍔″櫒鍙戝嚭璇鋒眰錛屾湇鍔″櫒绔▼搴忛噸鏂頒粠鏁版嵁搴撲腑鍙栧嚭鎸夋寚瀹氬垪鎺掑簭鐨勬暟鎹紝榪斿洖緇欏鎴風(fēng)錛岄〉闈㈤噸鏂版樉紺烘帓搴忓悗鏁版嵁銆?br />聽
聽聽聽 鍋囪寰呮帓搴忕殑璁板綍瀛樻斁鍦ㄦ暟緇凴[1..n]涓傚垵濮嬫椂錛孯[1]鑷垚1涓湁搴忓尯錛屾棤搴忓尯涓篟[2..n]銆備粠i=2璧風(fēng)洿鑷砳=n涓烘錛屼緷嬈″皢R[i]鎻掑叆褰撳墠鐨勬湁搴忓尯R[1..i-1]涓紝鐢熸垚鍚玭涓褰曠殑鏈夊簭鍖恒?/p>
聽聽var聽st聽=聽new聽Date();
聽聽var聽temp,聽j;
聽聽for(var聽i=1;聽i<arr.length;聽i++)聽{
聽聽聽if((arr[i])聽<聽(arr[i-1]))聽{
聽聽聽聽temp聽=聽arr[i];
聽聽聽聽j聽=聽i-1;
聽聽聽聽do聽{
聽聽聽聽聽arr[j+1]聽=聽arr[j];
聽聽聽聽聽j--;
聽聽聽聽}
聽聽聽聽while聽(j>-1聽&&聽(temp)聽<聽(arr[j]));
聽聽聽聽arr[j+1]聽=聽temp;
聽聽聽}//endif
聽聽}
聽聽status聽=聽(new聽Date()聽-聽st)聽+聽'聽ms';
聽聽return聽arr;
聽}
銆聽聽鍏堝彇涓涓皬浜巒鐨勬暣鏁癲1浣滀負(fù)絎竴涓閲忥紝鎶婃枃浠剁殑鍏ㄩ儴璁板綍鍒嗘垚d1涓粍銆傛墍鏈夎窛紱諱負(fù)dl鐨勫嶆暟鐨勮褰曟斁鍦ㄥ悓涓涓粍涓傚厛鍦ㄥ悇緇勫唴榪涜鐩存帴鎻掍漢鎺掑簭錛涚劧鍚庯紝鍙栫浜屼釜澧為噺d2<d1閲嶅涓婅堪鐨勫垎緇勫拰鎺掑簭錛岀洿鑷蟲墍鍙栫殑澧為噺dt=1(dt<dt-l<鈥?lt;d2<d1)錛屽嵆鎵鏈夎褰曟斁鍦ㄥ悓涓緇勪腑榪涜鐩存帴鎻掑叆鎺掑簭涓烘銆?br />聽 銆璇ユ柟娉曞疄璐ㄤ笂鏄竴縐嶅垎緇勬彃鍏ユ柟娉曘?/p>
聽聽var聽st聽=聽new聽Date();
聽聽var聽increment聽=聽arr.length;
聽聽do聽{
聽聽聽increment聽=聽(increment/3|0)聽+聽1;
聽聽聽arr聽=聽ShellPass(arr,聽increment);
聽聽}
聽聽while聽(increment聽>聽1)
聽聽status聽=聽(new聽Date()聽-聽st)聽+聽'聽ms';
聽聽return聽arr;
聽}
聽function聽ShellPass(arr,聽d)聽{聽//甯屽効鎺掑簭鍒嗘鎵ц鍑芥暟
聽聽var聽temp,聽j;
聽聽for(var聽i=d;聽i<arr.length;聽i++)聽{
聽聽聽if((arr[i])聽<聽(arr[i-d]))聽{
聽聽聽聽temp聽=聽arr[i];聽j聽=聽i-d;
聽聽聽聽do聽{
聽聽聽聽聽arr[j+d]聽=聽arr[j];
聽聽聽聽聽j聽=聽j-d;
聽聽聽聽}
聽聽聽聽while聽(j>-1聽&&聽(temp)聽<聽(arr[j]));
聽聽聽聽arr[j+d]聽=聽temp;
聽聽聽}//endif
聽聽}
聽聽return聽arr;
聽}
聽聽聽
灝嗚鎺掑簭鐨勮褰曟暟緇凴[1..n]鍨傜洿鎺掑垪錛屾瘡涓褰昍[i]鐪嬩綔鏄噸閲忎負(fù)R[i].key鐨勬皵娉°傛牴鎹交姘旀場(chǎng)涓嶈兘鍦ㄩ噸姘旀場(chǎng)涔嬩笅鐨勫師鍒欙紝浠庝笅寰涓婃壂鎻忔暟緇?
R錛氬嚒鎵弿鍒拌繚鍙嶆湰鍘熷垯鐨勮交姘旀場(chǎng)錛屽氨浣垮叾鍚戜笂"椋樻誕"銆傚姝ゅ弽澶嶈繘琛岋紝鐩村埌鏈鍚庝換浣曚袱涓皵娉¢兘鏄交鑰呭湪涓婏紝閲嶈呭湪涓嬩負(fù)姝€?br />
聽
聽聽var聽st聽=聽new聽Date();
聽聽var聽temp;
聽聽var聽exchange;
聽聽for(var聽i=0;聽i<arr.length;聽i++)聽{
聽聽聽exchange聽=聽false;
聽聽聽for(var聽j=arr.length-2;聽j>=i;聽j--)聽{
聽聽聽聽if((arr[j+1])聽<聽(arr[j]))聽{
聽聽聽聽聽temp聽=聽arr[j+1];
聽聽聽聽聽arr[j+1]聽=聽arr[j];
聽聽聽聽聽arr[j]聽=聽temp;
聽聽聽聽聽exchange聽=聽true;
聽聽聽聽}
聽聽聽}
聽聽聽if(!exchange)聽break;
聽聽}
聽聽status聽=聽(new聽Date()聽-聽st)聽+聽'聽ms';
聽聽return聽arr;
聽}
聽聽聽 灝嗗師闂鍒嗚В涓鴻嫢騫蹭釜瑙勬ā鏇村皬浣嗙粨鏋勪笌鍘熼棶棰樼浉浼肩殑瀛愰棶棰樸傞掑綊鍦拌В榪欎簺瀛愰棶棰橈紝鐒跺悗灝嗚繖浜涘瓙闂鐨勮В緇勫悎涓哄師闂鐨勮В銆?br />聽聽聽
鍦≧[low..high]涓換閫変竴涓褰曚綔涓哄熀鍑?Pivot)錛屼互姝ゅ熀鍑嗗皢褰撳墠鏃犲簭鍖哄垝鍒嗕負(fù)宸︺佸彸涓や釜杈冨皬鐨勫瓙鍖洪棿R[low..pivotpos-
1)鍜孯[pivotpos+1..high]錛屽茍浣垮乏杈瑰瓙鍖洪棿涓墍鏈夎褰曠殑鍏抽敭瀛楀潎灝忎簬絳変簬鍩哄噯璁板綍(涓嶅Θ璁頒負(fù)pivot)鐨勫叧閿瓧
pivot.key錛屽彸杈圭殑瀛愬尯闂翠腑鎵鏈夎褰曠殑鍏抽敭瀛楀潎澶т簬絳変簬pivot.key錛岃屽熀鍑嗚褰昿ivot鍒欎綅浜庢紜殑浣嶇疆(pivotpos)涓婏紝瀹冩棤
欏誨弬鍔犲悗緇殑鎺掑簭銆?/p>
聽
聽聽if聽(arguments.length>1)聽{
聽聽聽var聽low聽=聽arguments[1];
聽聽聽var聽high聽=聽arguments[2];
聽聽}聽else聽{
聽聽聽var聽low聽=聽0;
聽聽聽var聽high聽=聽arr.length-1;
聽聽}
聽聽if(low聽<聽high){
聽聽聽//聽function聽Partition
聽聽聽var聽i聽=聽low;
聽聽聽var聽j聽=聽high;
聽聽聽var聽pivot聽=聽arr[i];
聽聽聽while(i<j)聽{
聽聽聽聽while(i<j聽&&聽arr[j]>=pivot)
聽聽聽聽聽j--;
聽聽聽聽if(i<j)
聽聽聽聽聽arr[i++]聽=聽arr[j];
聽聽聽聽while(i<j聽&&聽arr[i]<=pivot)
聽聽聽聽聽i++;
聽聽聽聽if(i<j)
聽聽聽聽聽arr[j--]聽=聽arr[i];
聽聽聽}//endwhile
聽聽聽arr[i]聽=聽pivot;
聽聽聽//聽end聽function
聽聽聽var聽pivotpos聽=聽i;聽//Partition(arr錛宭ow錛宧igh);
聽聽聽QuickSort(arr,聽low,聽pivotpos-1);
聽聽聽QuickSort(arr,聽pivotpos+1,聽high);
聽聽}聽else
聽聽聽return;
聽聽聽return聽arr;
聽}
鐩存帴閫夋嫨鎺掑簭鍩烘湰鎬濇兂
聽聽銆n涓褰曠殑鏂囦歡鐨勭洿鎺ラ夋嫨鎺掑簭鍙粡榪噉-1瓚熺洿鎺ラ夋嫨鎺掑簭寰楀埌鏈夊簭緇撴灉錛?br />聽鈶犲垵濮嬬姸鎬侊細(xì)鏃犲簭鍖轟負(fù)R[1..n]錛屾湁搴忓尯涓虹┖銆?br />聽鈶$1瓚熸帓搴?br />聽聽聽聽鍦ㄦ棤搴忓尯R[1..n]涓夊嚭鍏抽敭瀛楁渶灝忕殑璁板綍R[k]錛屽皢瀹冧笌鏃犲簭鍖虹殑絎?涓褰昍[1]浜ゆ崲錛屼嬌R[1..1]鍜孯[2..n]鍒嗗埆鍙樹負(fù)璁板綍涓暟澧炲姞1涓殑鏂版湁搴忓尯鍜岃褰曚釜鏁板噺灝?涓殑鏂版棤搴忓尯銆?br />銆銆鈥︹?br />聽鈶㈢i瓚熸帓搴?br />銆銆絎琲瓚熸帓搴忓紑濮嬫椂錛屽綋鍓嶆湁搴忓尯鍜屾棤搴忓尯鍒嗗埆涓篟[1..i-1]鍜孯[i..n](1鈮鈮-1)銆傝瓚熸帓搴忎粠褰撳墠鏃犲簭鍖轟腑閫夊嚭鍏抽敭瀛楁渶灝忕殑璁板綍R聽[k]錛屽皢瀹冧笌鏃犲簭鍖虹殑絎?涓褰昍[i]浜ゆ崲錛屼嬌R[1..i]鍜孯[i+1..n]鍒嗗埆鍙樹負(fù)璁板綍涓暟澧炲姞1涓殑鏂版湁搴忓尯鍜岃褰曚釜鏁板噺灝?涓殑鏂版棤搴忓尯銆?br />聽聽聽聽榪欐牱錛宯涓褰曠殑鏂囦歡鐨勭洿鎺ラ夋嫨鎺掑簭鍙粡榪噉-1瓚熺洿鎺ラ夋嫨鎺掑簭寰楀埌鏈夊簭緇撴灉銆?br />
聽聽聽聽綆楁硶鎻忚堪
聽function聽SelectSort(arr)聽{聽//閫夋嫨鎺掑簭->鐩存帴閫夋嫨鎺掑簭
聽聽var聽st聽=聽new聽Date();
聽聽var聽temp;
聽聽for(var聽i=0;聽i<arr.length;聽i++)聽{
聽聽聽var聽k聽=聽i;
聽聽聽for(var聽j=i+1;聽j<arr.length;聽j++)聽{
聽聽聽聽if((arr[j])聽<聽(arr[k]))
聽聽聽聽聽k聽=聽j;
聽聽聽}
聽聽聽if聽(k聽!=聽i){
聽聽聽聽temp聽=聽arr[i];
聽聽聽聽arr[i]聽=聽arr[k];
聽聽聽聽arr[k]聽=聽temp;
聽聽聽}
聽聽}
聽聽status聽=聽(new聽Date()聽-聽st)聽+聽'聽ms';
聽聽return聽arr;
聽}
閲囩敤榪欑鏂瑰紡鏈夊涓嬬己鐐癸細(xì)
1- 鍝嶅簲鏃墮棿寤惰繜錛屾瘡嬈℃帓搴忛兘瑕佸悜鏈嶅姟鍣ㄧ鍙戦佽姹傦紝絳夊緟緇撴灉榪斿洖錛屽悓鏃跺鍔犵綉緇滆礋杞姐?br />2- 緙栫▼澶嶆潅錛屽彲緇存姢鎬у樊錛岃屼笖瀹㈡埛绔拰鏈嶅姟鍣ㄧ浠g爜鑰﹀悎搴﹀緢楂橈紝瀹㈡埛绔拰鏈嶅姟鍣ㄧ閮借澶勭悊鎺掑簭娑夊強(qiáng)鐨勫垪鍚嶃佹帓搴忔柟寮忥紝濡傛灉鏈夊垎欏靛拰鏌ヨ鏉′歡錛岄兘闇瑕佸湪瀹㈡埛绔〉闈腑淇濈暀錛屾帓搴忚姹傛椂閲嶆柊浼犻掑埌鏈嶅姟鍣ㄧ錛屽綋鍙傛暟鏁伴噺寰堝鏃舵瀬鏄撳嚭閿欍?br />3- 閲嶇敤搴﹀緢浣庯紝閽堝涓嶅悓琛ㄦ牸錛屽緢闅炬娊璞″嚭涓涓叕鍏辯▼搴忔潵鍏辯敤錛岄渶瑕侀愪釜緙栧啓浠g爜瀹炵幇錛屽鍔犲伐浣滈噺銆?br />聽
鐜板湪鎹竴涓搴﹁冭檻錛屾暟鎹棦鐒跺凡涓嬭澆鍒頒簡(jiǎn)瀹㈡埛绔紝鍦ㄩ噸鏂版帓搴忔椂娌℃湁蹇呰鍐嶉噸鏈嶅姟鍣ㄧ鑾峰彇錛屽彧瑕佸嫻忚鍣ㄤ腑鐨勬暟鎹噸鏂版帓搴忔樉紺哄氨鍙互浜?jiǎn)銆傝瀹炵幇璇ョ洰鏍囷紝闇瑕佸仛鍒頒互涓嬪嚑鐐癸細(xì)
1 - 鑾峰緱琛ㄦ牸涓鎺掑簭鐨勬暟鎹紝灝嗗叾鏀懼叆涓涓?緇存暟緇勪腑銆?br />2 - 瀵?緇存暟緇勬帓搴忋?br />3 - 鐢ㄦ帓搴忓悗鐨勬暟鎹噸鏂版洿鏂拌〃鏍箋?br />聽
鍒╃敤嫻忚鍣ㄦ敮鎸佺殑DOM(Document Object Model)鍜孞avaScript鍗沖彲瀹炵幇涓婅堪鐩爣銆?br />聽
閫氬父欏甸潰涓細(xì)寰堝鐨?lt;table>錛岃鑾峰緱闇瑕佹帓搴忔暟鎹墍鍦ㄧ殑table錛岄渶瑕佸湪<table>涓鍔犱竴涓猧d灞炴э紝渚夸簬document瀵硅薄鐢╣etElementById寰楀埌璇ヨ〃鏍煎璞★紝渚嬪瑕佹帓搴忕殑琛ㄦ牸瀹氫箟濡備笅錛?br />聽<table id="st" >
聽聽聽 <tr>
聽聽聽聽聽聽聽 <td>1</td>
聽聽聽聽聽聽聽 <td>2</td>
聽聽聽 </tr>
</table>
聽
鍦╦avascript涓紝鐢╲ar objTable = document.getElementById("st")灝卞彲寰楀埌琛ㄦ牸瀵硅薄錛岃瀵硅薄鍦―OM涓畾涔変負(fù)涓涓狤lement銆?br />聽
鐒?
鍚庣敤 var objRows =
objTable.getElementsByTagName("tr")寰楀埌璇ヨ〃鏍間腑鍏ㄩ儴鐨勮瀵硅薄錛孫bjRows.length榪斿洖璇ヨ〃鏍艱鏁幫紱
var rowi =
objRows[i].getElementsByTagName("td")寰楀埌絎琲琛岀殑鍏ㄩ儴<td>鑺傜偣錛宨浠?寮濮嬭鏁幫紝
rowi.item(j)鍒欏彲寰楀埌絎琲琛岋紝絎琷鍒楃殑鑺傜偣錛岃鑺傜偣鐨刬nnerHTML涓鴻鑺傜偣<td></td>涔嬮棿鐨勫唴瀹廣?br />聽
鑾峰彇琛ㄦ牸鏁版嵁鍒?緇存暟緇勭殑浠g爜瑙佹簮浠g爜錛屾澶勭暐銆?br />聽
涓嬮潰璇存槑鍦╦avascript涓?緇存暟緇勭殑鏋勯犲拰鎺掑簭銆?br />javascript涓嶆敮鎸?緇存暟緇勶紝鍥犳闇瑕佺敤鏁扮粍鐨勬暟緇勬潵妯℃嫙涓涓?緇存暟緇勶紝鍏舵柟娉曟槸鍏堝畾涔変竴涓?緇存暟緇勶紝鍏冪礌涓暟涓?緇存暟緇勭殑琛屾暟錛岀劧鍚庡姣忎釜鍏冪礌璧嬩竴涓鹼紝鍊間負(fù)涓涓暟緇勶紝鍏跺厓绱犱釜鏁頒負(fù)2緇存暟緇勭殑鍒楁暟銆傛瀯閫犱唬鐮佸涓嬶細(xì)
聽
var rows = new Array(R);聽 //R涓鴻鏁?br />for(var i = 0; i < rows.length; i++){
聽聽聽 rows[i] = new Array(C);聽聽聽 //C涓哄垪鏁?br />}
聽
聽
鍒╃敤javascript涓殑Array.sort(comparer)瀵箁ows涓殑鍏冪礌鎺掑簭錛屾瘮杈冩柟寮忕敱閲嶆柊瀹氫箟鐨勬瘮杈冨嚱鏁板緱鍒般傝鏍規(guī)嵁絎琷鍒楀厓绱犵殑澶у皬鎺掑簭錛屽彧瑕佸畾涔夊涓嬪嚱鏁板嵆鍙細(xì)
聽
function compareCol(a,b){
聽聽聽
聽聽聽 if (a[j] < b[j])
聽聽聽聽聽聽聽 return -1;
聽
聽聽聽 if (a[j] > b[j])
聽聽聽聽聽聽聽 return 1;
聽
聽聽 return 0;
聽
}
聽
鍥犱負(fù)compareCol鍙兘鏈変袱涓弬鏁幫紝鍥犳j瑕佸畾涔変負(fù)鍏ㄥ眬鍙橀噺銆?br />聽
鐢╮ows.sort
(compareCol)灝卞彲瀹炵幇鏍規(guī)嵁j鍒楀肩殑澶у皬瀵硅榪涜鎺掑簭銆傛牴鎹甹avascript鏂囨。錛屽瓧絎︿覆姣旇緝澶у皬鏄寜鐓у叾Unicode緙栫爜鐨勫ぇ灝忔潵姣?
杈冿紝瀵硅嫳鏂囨帓搴忔病鏈夐棶棰橈紝瀵逛腑鏂囨帓搴忔椂灝變笉鏄寜閫氬父鐨勬嫾闊蟲帓搴忥紝閭i渶瑕乯avascript鎻愪緵鏈湴鍖栨敮鎸侊紝鐩墠娌℃湁鍙戠幇javascript姝ゅ姛鑳姐傝
鍔熻兘鍦╦ava涓彲鐢╦ava.text.Collator瀹炵幇銆?br />聽
聽
聽浠ヤ笂浠嬬粛浜?jiǎn)鍦ㄦ湰鍦板?guī)祻瑙堝櫒涓殑鏁版嵁榪涜鎺掑簭鐨勪富瑕佹濇兂錛?
涓烘柟渚夸嬌鐢紝灝嗚繖浜涘姛鑳借繘琛屼簡(jiǎn)灝佽錛屼互javascript鍑芥暟鐨勬彁渚涳紝瀛樻斁鍦╯orttable.js鏂囦歡涓紝鍦ㄩ渶瑕佺殑欏甸潰涓敤<script
type=text/javascript src='sorttable.js'></script>寮曞叆銆?br />聽
聽
聽涓嬮潰璇存槑鎺掑簭鍑芥暟鍘熷瀷鍜屼嬌鐢ㄦ柟娉曘?br />聽
鍑芥暟1 function sortTable(tableId,sortCol,compareType)
瀵歸〉闈腑鎸囧畾琛ㄦ牸涓殑鏁版嵁榪涜鎺掑簭錛岄氬父絎竴琛屼負(fù)鏍囬琛岋紝鎺掑簭鏃朵粠絎簩琛屽紑濮嬶紝絎竴嬈¤皟鐢ㄤ負(fù)鍗囧簭鎺掑垪錛岀浜屾涓洪檷搴忔帓鍒楋紝渚濇杞崲銆?br />tableId聽聽聽 涓?lt;table id=''>涓璱d鐨勫鹼紝鍦ㄥ悓涓涓〉闈腑瑕佸敮涓銆?br />sortCol聽聽聽 鎺掑簭鏃剁敤鏉ユ瘮杈冨ぇ灝忕殑鏁版嵁鎵鍦ㄧ殑鍒楋紝浠?寮濮嬭鏁般?br />compareType 鎺掑簭鏃舵瘮杈冨ぇ灝忕殑鏂瑰紡錛宻-鎸夊瓧絎︿覆姣旇緝澶у皬錛宯-鎸夋暟瀛楁瘮杈冨ぇ灝忋?br />聽
聽
聽
聽鍑芥暟2 function sortTableInRange(tableId,sortCol,compareType,startRow,endRow,startCol,endCol)
聽
聽聽聽聽聽聽聽 瀵硅〃鏍間腑鎸囧畾鐨勫尯鍩熸暟鎹帓搴忥紝鏈夋椂鏁版嵁絎竴鍒椾負(fù)嫻佹按鍙鳳紝鏈鍚庝竴琛屼負(fù)鍚堣錛岃繖浜涙暟鎹笉闇瑕佸弬涓庢帓搴忥紝鍙敤姝ゅ嚱鏁版潵瀵歸儴鍒嗘暟鎹帓搴忋?br />聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 tableId聽聽聽 涓?lt;table id=''>涓璱d鐨勫鹼紝鍦ㄥ悓涓涓〉闈腑瑕佸敮涓銆?br />聽聽聽聽聽聽聽 sortCol聽聽聽 鎺掑簭鏃剁敤鏉ユ瘮杈冨ぇ灝忕殑鏁版嵁鎵鍦ㄧ殑鍒楋紝浠?寮濮嬭鏁般?br />聽聽聽聽聽聽聽 compareType 鎺掑簭鏃舵瘮杈冨ぇ灝忕殑鏂瑰紡錛宻-鎸夊瓧絎︿覆姣旇緝澶у皬錛宯-鎸夋暟瀛楁瘮杈冨ぇ灝忋?br />聽聽聽聽聽聽聽 startRow,endRow 瑕佹帓搴忓尯鍩熷紑濮嬪拰緇撴潫琛屽彿錛屼粠1寮濮嬭鏁般備緥濡傚絎?琛屽埌絎?琛屾帓搴忥紝startRow=2錛宔ndRow=7
聽聽聽聽聽聽聽 startCol,endCol聽 瑕佹帓搴忓尯鍩熷紑濮嬪拰緇撴潫鍒楀彿錛屼粠1寮濮嬭鏁般?br />聽
聽
聽
聽
聽
瀛樺湪鐨勯棶棰橈細(xì)
1- 涓枃涓嶈兘鎸夋嫾闊蟲帓搴忋?br />聽
聽
瑕佹敞鎰忕殑闂錛?br />瑕佹帓搴忕殑table蹇呴』鐢↖D鏍囩ず錛屽茍瑕佷綔涓哄弬鏁頒紶緇欐帓搴忓嚱鏁幫紝琛ㄦ牸涓殑鏁版嵁搴旇鏄彲浠ユ帓搴忕殑錛屽惁鍒欑粨鏋滀笉鍙鐭ワ紱瑕佹帓搴忕殑琛ㄦ牸涓嶈兘鏈夊祵濂楄〃錛屽惁鍒欐帓搴忓嚭閿欍?br />聽
聽
鏈嚱鏁板凡鍦↖E6.0 ,FireFox1.01涓繍琛岄氳繃銆傛簮浠g爜鍜屼緥瀛愪唬鐮佽鍚庛?br />聽
聽
聽
聽
鍙傝冭祫鏂欙細(xì)
聽
Danny Goodman with Michael Morrison聽聽 JavaScript Bible 5th聽 ,John Wiley and Sons聽 2004
聽
David Flanagan聽 JavaScript The Definitive Guide 4th ,聽 O'Reilly聽 2001
聽
聽
聽
聽
聽
聽闄勬簮浠g爜錛氳榪愯渚嬪瓙錛岄渶瑕佸皢javascript浠g爜淇濆瓨鍒皊orttable.js鏂囦歡涓紝html閮ㄥ垎浠g爜淇濆瓨鍒板悓涓鐩綍涓嬪彟涓鏂囦歡涓嵆鍙?br />聽
聽
sorttable.js
聽
聽
聽2聽聽//
聽3聽聽//聽聽鍦ㄦ湰鏈哄嫻忚鍣ㄩ〉闈㈣〃鏍間腑鐨勬暟鎹榪涜鎺掑簭鐨刯avascript鍑芥暟
聽4聽聽//聽
聽5聽聽//聽聽author聽William聽聽QQ:聽22967225
聽6聽//聽聽create聽date聽2005-12-2
聽7聽聽//聽聽version聽1.0
聽8聽聽//=========================================================
聽9聽
10聽聽//column聽index聽for聽sort
11聽聽var聽indexCol;
12聽聽//姣旇緝鍑芥暟錛岀敤浜嶢rray.sort()鎺掑簭鏃舵瘮杈冪敤銆?/span>
13聽聽//鏈嚱鏁版瘮杈冩暟緇勫厓绱燼rray1[indexCol]鍜屽厓绱燼rray2[indexCol]Unicode鍊肩殑澶у皬
14聽聽function聽arrayCompare(array1,array2){
15聽聽聽//alert(array1.length+"--"+array1[indexCol]);
16聽聽聽if聽(array1[indexCol]聽<聽array2[indexCol])
17聽聽聽聽return聽-1;
18聽聽聽if聽(array1[indexCol]聽>聽array2[indexCol])
19聽聽聽聽return聽1;
20聽聽
21聽聽聽return聽0;
22聽聽
23聽聽}
24聽聽//姣旇緝鏁扮粍鍏冪礌array1[indexCol]鍜屽厓绱燼rray2[indexCol]鐨勬暟鍊煎ぇ灝?/span>
25聽聽function聽arrayCompareNumber(array1,array2){
26聽聽
27聽聽聽if聽(parseInt(array1[indexCol])聽<聽parseInt(array2[indexCol]))
28聽聽聽聽return聽-1;
29聽聽聽if聽(parseInt(array1[indexCol])聽>聽parseInt(array2[indexCol]))
30聽聽聽聽return聽1;
31聽聽
32聽聽聽return聽0;
33聽聽}
34聽聽//涓巃rrayCompare鐩稿弽鏂瑰紡姣旇緝澶у皬錛岀敤浜庡掑簭浣跨敤
35聽聽function聽arrayCompareRev(array1,array2){
36聽聽
37聽聽聽if聽(array1[indexCol]聽<聽array2[indexCol])
38聽聽聽聽return聽1;
39聽聽聽if聽(array1[indexCol]聽>聽array2[indexCol])
40聽聽聽聽return聽-1;
41聽聽
42聽聽聽return聽0;
43聽聽
44聽聽}
45聽聽//涓巃rrayCompareNumber鐩稿弽鏂瑰紡姣旇緝澶у皬錛岀敤浜庡掑簭浣跨敤
46聽聽function聽arrayCompareNumberRev(array1,array2){
47聽聽聽if聽(parseInt(array1[indexCol])聽<聽parseInt(array2[indexCol]))
48聽聽聽聽return聽1;
49聽聽聽if聽(parseInt(array1[indexCol])聽>聽parseInt(array2[indexCol]))
50聽聽聽聽return聽-1;
51聽聽
52聽聽聽return聽0;
53聽聽}
54聽聽
55聽聽//define聽a聽2-dimension聽array
56聽聽function聽BiArray(rows,cols){
57聽聽
58聽聽聽//simulate聽multidimension聽array
59聽聽聽this.rows聽=聽rows;
60聽聽聽this.cols聽=聽cols;
61聽聽
62聽聽聽//construct聽array
63聽聽聽var聽lines聽=聽new聽Array(rows);
64聽聽聽for(var聽i聽=聽0;i聽<聽lines.length;聽i++){
65聽聽聽聽lines[i]聽=聽new聽Array(cols);
66聽聽聽}
聽
{
聽var Rec=new ActiveXObject("ADODB.RecordSet");
聽Rec.Fields.Append("DDD",201,1);
聽Rec.Open();
聽Rec.AddNew();
聽Rec(0).AppendChunk(strBody);
聽Rec.Update();
聽var HTML=Rec(0).Value;
聽Rec.Close();
聽delete Rec;
聽document.charset=cset;
聽return(HTML);
}
<div id="Error"></div>
<div id="State"></div>
<div id="DownloadEnd"></div>
<Script Language="JavaScript">
<!--
// more javascript from http://www.smallrain.net
function Ajax(OnError,OnState,OnDownloadEnd)
{
聽// 閿欒瀛楃涓?br />聽this.ErrorStr 聽聽= null;
聽// 閿欒浜嬩歡椹卞姩,褰撳彂鐢熼敊璇椂瑙﹀彂
聽this.OnError 聽聽= OnError;
聽// 鐘舵佷簨浠墮┍鍔?褰撶姸鎬佹敼鍙樻椂瑙﹀彂
聽this.OnState 聽聽= OnState;
聽// 瀹屾垚浜嬩歡椹卞姩,褰撶被鎿嶄綔瀹屾垚鏃惰Е鍙?br />聽this.OnDownloadEnd 聽= OnDownloadEnd;
聽// XMLHTTP 鍙戦佹暟鎹被鍨?GET 鎴?POST
聽this.method聽聽= "GET";
聽// 灝嗚鑾峰彇鐨刄RL鍦板潃
聽this.URL聽聽= null;
聽// 鎸囧畾鍚屾鎴栧紓姝ヨ鍙栨柟寮?true 涓哄紓姝?false 涓哄悓姝?
聽this.sync聽聽= true;
聽// 褰搈ethod 涓?POST 鏃?鎵瑕佸彂閫佺殑鏁版嵁
聽this.PostData聽聽= null
聽// 榪斿洖璇誨彇瀹屾垚鍚庣殑鏁版嵁
聽this.RetData 聽聽= null;
聽// 鍒涘緩XMLHTTP瀵瑰儚
聽this.HttpObj 聽聽= this.createXMLHttpRequest();
聽if(this.HttpObj == null)
聽{
聽聽// 瀵瑰儚鍒涘緩澶辮觸鏃朵腑姝㈣繍琛?br />聽聽return;
聽}
聽var Obj = this;
聽// 璋冪敤浜嬩歡媯(gè)嫻?br />聽this.HttpObj.onreadystatechange = function()
聽{
聽聽Ajax.handleStateChange(Obj);
聽}
}
// UTF 杞叆 GB (by:Rimifon)
Ajax.prototype.UTFTOGB = function(strBody)
{
聽var Rec=new ActiveXObject("ADODB.RecordSet");
聽Rec.Fields.Append("DDD",201,1);
聽Rec.Open();
聽Rec.AddNew();
聽Rec(0).AppendChunk(strBody);
聽Rec.Update();
聽var HTML=Rec(0).Value;
聽Rec.Close();
聽delete Rec;
聽return(HTML);
}
// 鍒涘緩XMLHTTP瀵瑰儚
Ajax.prototype.createXMLHttpRequest = function()
{
聽if (window.XMLHttpRequest)
聽{
聽聽//Mozilla 嫻忚鍣?br />聽聽return new XMLHttpRequest();
聽}
聽else if (window.ActiveXObject)
聽{
聽聽聽聽聽聽聽 聽var msxmls = new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP');
聽聽聽聽聽聽聽 聽for (var i = 0; i < msxmls.length; i++)
聽聽聽聽聽聽聽 聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽try
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽return new ActiveXObject(msxmls[i]);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}catch (e){}
聽聽}
聽}
聽this.ErrorStr = "浣犵殑嫻忚鍣ㄤ笉鏀寔XMLHttpRequest瀵硅薄錛?
聽if(this.OnError)
聽{
聽聽this.OnError(this.ErrorStr);
聽}
聽聽聽 聽return null;
}
// 鍙戦丠TTP璇鋒眰
Ajax.prototype.send = function()
{
聽if (this.HttpObj !== null)
聽{
聽聽this.URL = this.URL + "?t=" + new Date().getTime();
聽聽this.HttpObj.open(this.method, this.URL, this.sync);
聽聽if(this.method.toLocaleUpperCase() == "GET")
聽聽{
聽聽聽this.HttpObj.send(null);
聽聽}
聽聽else if(this.method.toLocaleUpperCase() == "POST")
聽聽{
聽聽聽this.HttpObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
聽聽聽this.HttpObj.send(this.PostData);
聽聽}
聽聽else
聽聽{
聽聽聽this.ErrorStr = "閿欒鐨刐method]鍛戒護(hù)錛?
聽聽聽if(this.OnError)
聽聽聽{
聽聽聽聽this.OnError(this.ErrorStr);
聽聽聽}
聽聽聽return;
聽聽}
聽聽if (this.HttpObj.readyState == 4)
聽聽{
聽聽聽// 鍒ゆ柇瀵硅薄鐘舵?br />聽聽聽聽聽聽聽聽聽聽聽 聽聽if (this.HttpObj.status == 200)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽{
聽聽聽聽this.RetData = this.UTFTOGB(this.HttpObj.responseBody);
聽聽聽聽if(this.OnDownloadEnd)
聽聽聽聽{
聽聽聽聽聽this.OnDownloadEnd(this.RetData);
聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽return;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}
聽聽聽else
聽聽聽{
聽聽聽聽this.ErrorStr = "鎮(zhèn)ㄦ墍璇鋒眰鐨勯〉闈㈡湁寮傚父錛?
聽聽聽聽if(this.OnError)
聽聽聽聽{
聽聽聽聽聽this.OnError(this.ErrorStr);
聽聽聽聽}
聽聽聽聽return;
聽聽聽}
聽聽}
聽}
}
// 浜嬩歡媯(gè)嫻?br />Ajax.handleStateChange = function(Obj)
{
聽if(Obj.OnState)
聽{
聽聽Obj.OnState(Obj.HttpObj.readyState);
聽}
聽if (Obj.HttpObj.readyState == 4)
聽{
聽聽// 鍒ゆ柇瀵硅薄鐘舵?br />聽聽聽聽聽聽聽聽聽聽聽 聽if (Obj.HttpObj.status == 200)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽Obj.RetData = Obj.UTFTOGB(Obj.HttpObj.responseBody);
聽聽聽if(Obj.OnDownloadEnd)
聽聽聽{
聽聽聽聽Obj.OnDownloadEnd(Obj.RetData);
聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽else
聽聽{
聽聽聽Obj.ErrorStr = "鎮(zhèn)ㄦ墍璇鋒眰鐨勯〉闈㈡湁寮傚父錛?
聽聽聽if(Obj.OnError)
聽聽聽{
聽聽聽聽Obj.OnError(Obj.ErrorStr);
聽聽聽}
聽聽聽return;
聽聽}
聽}
}
// 閿欒鍥炶皟浜嬩歡鍑芥暟
function EventError(strValue)
{
聽document.getElementById("Error").innerHTML = strValue;
}
// 鐘舵佸洖璋冧簨浠跺嚱鏁?br />function EventState(strValue)
{
聽var strState = null;
聽switch (strValue)
聽{
聽聽 聽聽case 0:
聽聽strState = "鏈垵濮嬪寲...";
聽聽break;
聽聽 聽聽case 1:
聽聽strState = "寮濮嬭鍙栨暟鎹?..";
聽聽break;
聽聽 聽聽case 2:
聽聽strState = "璇誨彇鏁版嵁...";
聽聽break;
聽聽 聽聽case 3:
聽聽strState = "璇誨彇鏁版嵁涓?..";
聽聽break;
聽聽 聽聽case 4:
聽聽strState = "璇誨彇瀹屾垚...";
聽聽break;
聽聽 聽聽default:
聽聽strState = "鏈垵濮嬪寲...";
聽聽break;
聽}
聽document.getElementById("State").innerHTML = strState;
}
// 瀹屾垚鍥炶皟浜嬩歡鍑芥暟
function EventDownloadEnd(strValue)
{
聽document.getElementById("DownloadEnd").innerHTML = strValue;
}
// 鍒濆鍖朅jax瀵瑰儚,寮曞叆浜嬩歡鍥炶皟鍑芥暟
var A1 = new Ajax(EventError,EventState,EventDownloadEnd);
// 鎸囧畾method鏁版嵁鍙戦佺被鍨?br />A1.method = "GET";
// 鎸囧畾URL鍦板潃
A1.URL = "// 鎸囧畾涓哄紓姝ュ鐞?br />A1.sync = true;
//鍙戦佽姹?br />A1.send();
//-->
</Script>聽
浣滆咃細(xì)llinzzi銆鏃墮棿錛?2006-03-16銆鏂囨。綾誨瀷錛氬師鍒涖鏉ヨ嚜錛?a >钃濊壊鐞嗘兂
|
![]() |
鐢變簬ajax鍦ㄨ法鍩熺殑璁塊棶涓婃湁闂,鐩墠鏈濂界殑鏂規(guī)硶鏄仛浠g悊.鍐欎簡(jiǎn)涓唬鐞嗙▼搴忓拰蹇?jī)寰? 涓轟簡(jiǎn)鍋歛jax鐨勪唬鐞?鐮旂┒浜?jiǎn)涓嬫湇鍔″櫒绔殑xmlhttp騫跺拰瀹㈡埛绔殑ajax涓殑xmlhttp鍋氫簡(jiǎn)涓瘮杈?鍚庡彴浠g爜鏄痑sp鐨? 鏈嶅姟鍣ㄧ鐨剎mlhttp涔熷氨鏄痑sp灝忓伔紼嬪簭,鎴戞妸浠g爜鏀規(guī)垚浜?jiǎn)javascript. 1.鍦ㄦ湇鍔″櫒绔殑xmlhttp.Open("GET",url,false)寮傛蹇呴』鏄叧闂殑,鑰屽鎴風(fēng)鐨勫紓姝ユ槸鎵撳紑鐨?榪欎釜寰堝ソ鐞嗚В. ajax鐨刟sp浠g悊鍑芥暟浠嬬粛: 鏈嶅姟鍣ㄧ浠g爜濡備笅甯﹁嚜鍔ㄥ垽鏂墍鏈夊瓧絎︾紪鐮?宸叉祴璇?鏃ヨ 闊╄ 綣佷綋: <%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
"http://www.w3.org/TR/html4/loose.dtd"> 聽 Server.ScriptTimeout=9999999; function bytesToBSTR(body,Cset){ %> |
common.js //鎵╁睍String綾誨姛鑳?br />//鍒犻櫎瀛楃涓蹭簩杈圭┖鏍?br />聽聽 String.prototype.trim = function() --------------------------------------------------------------------- chkUtil.js //瀹氫箟涓涓彲闈?rùn)鎬佽皟鐢ㄦ柟娉曠殑js綾?br />function ChkUtil() { } ------------------------------------------------------------------ 璋冪敤紺轟緥
|
聽聽聽聽
|
聽
錛嶏紞錛嶏紞浣跨敤浠ヤ笂浠g爜錛屼細(xì)寮瑰嚭涓涓闂獥鍙o紝鏄惁鍏抽棴褰撳墠紿楀彛錛屾垜浠彧瑕佺◢鍋氭洿鏀癸紝灝卞彲閬胯繃榪欎釜鏈哄埗錛?
浠栦滑涔嬮棿鐨勫尯鍒負(fù)錛?/span>
escape/unescape錛?/span>
浠?6榪涘埗緙栫爜瀛楃涓詫紝瀵圭┖鏍箋佺鍙風(fēng)瓑瀛楃鐢?xx緙栫爜琛ㄧず錛屽涓枃絳夊瓧絎︾敤%uxxxx緙栫爜琛ㄧず銆傝嚜javascript1.5涔嬪悗錛屾鏂規(guī)硶宸茬粡涓嶈鎺ㄨ崘浣跨敤銆?/span>
encodeURI/decodeURI錛?/span>
浠TF-8緙栫爜緙栫爜瀛楃涓詫紝瀵硅繖浜涘瓧絎︼細(xì)鈥?/span>
; , / ? : @ & = + $
鈥濅笉鍋氱紪鐮併?/span>
encodeURIComponent/decodeURIComponent錛?/span>
浠TF-8緙栫爜緙栫爜鎵鏈夊瓧絎︿覆銆?/span>
鍥犱負(fù)escape/unescape宸茬粡deprecated銆傚氨涓嶈瀹冧簡(jiǎn)錛宔ncodeURI鍜宔ncodeURIComponent涔嬪墠鐨勫尯鍒敤瀹炰緥璇存槑錛?/span>
姣斿璇磋浣跨敤get鏂瑰紡灝嗕竴涓弬鏁皍錛屼紶閫掔粰鏈嶅姟鍣細(xì)