可能我有一个愚蠢的问题,但如何在select选项中对字母数字文本进行排序? 例如:
<select> <option>H123-128kbps</option>
<option>H123-1024kbps</option>
<option>H130-128kbps</option>
<option>H123-512kbps</option>
<option>H123-256kbps</option>
<option>H130-256kbps</option>
</select>
我想对它进行排序:
<select><option>H123-128kbps</option>
<option>H123-256kbps</option>
<option>H123-512kbps</option>
<option>H123-1024kbps</option>
<option>H130-128kbps</option>
<option>H130-256kbps</option>
</select>
目前,我收到部分结果:
<select><option>H123-128kbps</option>
<option>H123-512kbps</option>
<option>H123-1024kbps</option>
<option>H123-256kbps</option>
<option>H123-1024kbps</option>
<option>H130-256kbps</option>
<option>H130-128kbps</option>
</select>
这是我的代码:
var options = $('select.whatever option');
var arr = options.map(function (_, o) {
return {t: $(o).text(), v: o.value};
}).get();
arr.sort(function (o1, o2) {
return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0;
});
options.each(function (i, o) {
o.value = arr[i].v;
$(o).text(arr[i].t);
});
提前多多感谢:)