今天51js上有网友贴出了这个问题,原本以为是把内容按字母顺序倒序排列,因为以前看过一篇正序排列的文章,偶就想倒序也应该不难,查看了下资料便很快搞定了问题. 无忧脚本代码测试网页 b e c f a function st(a,b){ if(a>b) return -1; else if(a<b) return 1; else return 0; } function sort(id){ var s=document.getElementById(id); if(!s)return ; var t1=[],t2=[],tt=s.options; while(tt.length>0){ t1[t1.length]=tt[0].text; t2[t2.length]=tt[0].value; tt.remove(0); } t1.sort(st); for(var i=0,c1,c2;c1=t1[i],c2=t2[i];i++){ tt.add(new Option(c1,c2)); } } sort("a"); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 但看回帖后原来楼主没有吧问题描述清楚,他本意是想把列表内容倒序排列,即abcef变成fecba。 开始以为不好解决,突然想起数组有一reverse()函数(将数组内容倒序排列),问题一下子就变的很简单了。 无忧脚本代码测试网页 b e c f a function sort(id){ var s=document.getElementById(id); if(!s)return ; var t1=[],t2=[],tt=s.options; while(tt.length>0){ t1[t1.length]=tt[0].text; t2[t2.length]=tt[0].value; tt.remove(0); } t1.reverse(); t2.reverse(); for(var i=0,c1,c2;c1=t1[i],c2=t2[i];i++){ tt.add(new Option(c1,c2)); } } sort("a"); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]