<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>
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>
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>