在javascript中,按值而不是按文本对选择下拉列表进行排序

在javascript中,按值而不是按文本对选择下拉列表进行排序,javascript,Javascript,我有两个选择下拉列表,我想按值排序。我该怎么做 <select id="select1"> <option value="1-1/4">1 1/4"</option> <option value="1/2">1/2"</option> <option value="1">1"</option> <option value="2-1/2">2 1/2"</option>

我有两个选择下拉列表,我想按值排序。我该怎么做

<select id="select1">
  <option value="1-1/4">1 1/4"</option>
  <option value="1/2">1/2"</option>
  <option value="1">1"</option>
  <option value="2-1/2">2 1/2"</option>
  <option value="2">2"</option>
  <option value="3/4">3/4"</option>
  <option value=""3">3"</option>
</select>
<select id="select2">
  <option value="E">East</option>
  <option value="N">North</option>
  <option value="O">Other</option>
  <option value="S">South</option>
  <option value="W">West</option>
</select>

1 1/4"
1/2"
1"
2 1/2"
2"
3/4"

HTMLSelectElement
有一个类似数组的
options
属性,因此我们可以从中获取选项,对它们进行排序,然后将它们添加回:

setTimeout(display.bind(null,“2…”),500);
setTimeout(display.bind(null,“1…”),1000);
setTimeout(函数(){
sortSelect(“select1”);
sortSelect(“select2”);
显示(“已排序”);
}, 1500);
功能排序选择(id){
var sel=document.getElementById(id);
var options=Array.prototype.slice.call(sel.options);
sel.options.length=0;
选项.排序(函数(a,b){
返回a.value.localeCompare(b.value);
});
options.forEach(函数(opt){
选择选项。添加(选择);
});
}
功能显示(msg){
document.getElementById(“display”).innerHTML=msg;
}
3。。。
1 1/4"
1/2"
1"
2 1/2"
2"
3/4"

到目前为止,最好的方法是在HTML或生成HTML的任何东西中进行。