您的位置:首页 > 其它

select列表内容按字母倒序排序与按列表倒序排列

2006-07-04 17:05 471 查看
今天51js上有网友贴出了这个问题,原本以为是把内容按字母顺序倒序排列,因为以前看过一篇正序排列的文章,偶就想倒序也应该不难,查看了下资料便很快搞定了问题.
<html>
<head>
<title>无忧脚本代码测试网页</title>
</head>
<body>
<SELECT name="a" id="a">
<OPTION value="b">b</OPTION>
<OPTION value="e">e</OPTION>
<OPTION value="c">c</OPTION>
<OPTION value="f">f</OPTION>
<OPTION value="a">a</OPTION>
</SELECT>
<script type="text/javascript">
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");
</script>
</body>
</html>

但看回帖后原来楼主没有吧问题描述清楚,他本意是想把列表内容倒序排列,即abcef变成fecba。
开始一位不好解决,突然想起数组有一reverse()函数(将数组内容倒序排列),问题一下子就变的很简单了。
<html>
<head>
<title>无忧脚本代码测试网页</title>
</head>
<body>
<SELECT name="a" id="a">
<OPTION value="b">b</OPTION>
<OPTION value="e">e</OPTION>
<OPTION value="c">c</OPTION>
<OPTION value="f">f</OPTION>
<OPTION value="a">a</OPTION>
</SELECT>
<script type="text/javascript">
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");
</script>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: