Microsoft(R) JScript(R)
sort 方法   语言参考 
版本 2  
 请参阅                  应用于 
--------------------------------------------------------------------------------描述
返回一个元素已经进行了排序的 Array 对象。 语法
arrayobj.sort(sortfunction) 
sortfunction 参数是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。 说明
sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。 
如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一: 负值,如果所传递的第一个参数比第二个参数小。 
零,如果两个参数相等。 
正值,如果第一个参数比第二个参数大。 
下面这个例子说明了 sort 方法的用法: function SortDemo()
{
  var a, l;
  a = new Array("X" ,"y" ,"d", "Z", "v","m","r");
  l = a.sort();
  return(l);
}
--------------------------------------------------------------------------------

解决方案 »

  1.   

    <select name="aa">
    <option value="11">111</option>
    <option value="33">333</option>
    <option value="22">222</option>
    </select>
    <script language=javascript>
    var obj=document.getElementById("aa")
    var objs=obj.options
    var a=new Array();
    for(var i=0;i<objs.length;i++)
    {
    a[a.length]=new Array(objs[i].value,objs[i].text)
    }
    a.sort();
    objs.length=0;
    for(var i=0;i<a.length;i++)
    {
    objs[i]=new Option(a[i][0],a[i][1])
    }
    </script>
      

  2.   

    我的页面上是两个select框,把左边显示的option项选中之后,双击可以复制到右边的select框里,然后右边的select框有两个按钮,用来做升降序排列
      

  3.   

    并且select框属性是multiple,这样就可以多选了,然后再对复制到右边精选框的option排序,有没有完整程序,谢谢
      

  4.   

    以下示例,仅通过ie5.5+测试:左右移动进行选取,以及选中后上下移动
    http://jkisjk.spaces.live.com/blog/cns!758CACE25E89DD3B!355.entry
      

  5.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <!-- DW6 -->
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>shawl.qiu template</title>
    <script type="text/javascript">
    //<![CDATA[
    function fDomSleOdr(obj, sort){
    if(!obj)return false;
    var o=obj.getElementsByTagName('option');
    if(sort=='down'){
    for(var i=0; i<o.length; i++){
    for(var k=0; k<o.length; k++){
    if(o[k].firstChild.data>o[i].firstChild.data){
    obj.insertBefore(o[i], o[k]);
    }
    }
    }
    } else {
    for(var i=0; i<o.length; i++){
    for(var k=0; k<o.length; k++){
    if(o[k].firstChild.data<o[i].firstChild.data){
    obj.insertBefore(o[i], o[k]);
    }
    }
    }
    } // shawl.qiu script
    }
    //]]>
    </script>
    </head>
    <body>
    <select id="sle" multiple="multiple" size="8" >
    <option>z</option>
    <option>a</option>
    <option>b</option>
    <option>e</option>
    <option>x</option>
    <option>d</option>
    <option>c</option>
    <option>f</option>
    </select><br />
    <button onclick="fDomSleOdr(document.getElementById('sle'), 'down')">降序</button> 
    <button onclick="fDomSleOdr(document.getElementById('sle'), 'up')">升序</button>
    </body>
    </html>
      

  6.   

    啰嗦一下, 我发现要兼容好点, 用 DOM 是一个好路子.