<script>
function SortOptions(el, desc) {
var op = el.options;
with (el) {
for (var i=0,d=new Array();i<op.length;i++) d[i] = op[i];
length = 0;
var nop = d.sort(function(a,b){ return a.text > b.text ? desc : (a.text < b.text ? -desc : 0); });
for (var i=0;i<nop.length;i++)
options[i] = new Option(nop[i].text,nop[i].value);
}
}
</script>
<select id="s">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<button onclick="SortOptions(s,1)">asc</button>
<button onclick="SortOptions(s,-1)">desc</button>

解决方案 »

  1.   

    <SCRIPT language="javascript">
    function sortSel()
    {
        var oSel = document.all.sel;
        //记录value对应的option
        var arrOpt = new Array();
        //记录value
        var arrValue = new Array();
        var index = 0;
        for(var i=0; i<oSel.options.length; i++)
        {
            arrOpt[oSel.options[i].value] = oSel.options[i];
            arrValue[index ++] = oSel.options[i].value;
        }
        //对value排序
        arrValue = arrValue.sort();
        oSel.innerHTML = "";
        //按照排序后的vlaue把option加入select
        for(var i=0; i<arrValue.length; i++)
        {     
            oSel.add(arrOpt[arrValue[i]]);
        }
    }
    </SCRIPT>
    <BODY>
    <SELECT name="sel" style="width:75px">
        <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>
    <INPUT type="button" onClick="sortSel()" value=" sort ">
    </BODY>