Probably, I have a stupid question, but how can I sort alphanumeric text in select's option? Example:
<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>
I would like to sort it like:
<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>
Currently, I receive partial results:
<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>
This is my code :
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);
});
Thanks a lot in advance :)