使用Jquery按值排序选项
我正在尝试按selectbox中的值对选项进行排序。使用下面的代码进行排序是可以的。但是我的选项值为null,它位于底部,应该位于顶部使用Jquery按值排序选项,jquery,drop-down-menu,Jquery,Drop Down Menu,我正在尝试按selectbox中的值对选项进行排序。使用下面的代码进行排序是可以的。但是我的选项值为null,它位于底部,应该位于顶部 $(this).html($("option", $(this)).sort(function(a, b) { var arel = parseInt($(a).attr('value'), 10); var brel = parseInt($(b).attr('value'), 10); return arel == brel ? 0
$(this).html($("option", $(this)).sort(function(a, b) {
var arel = parseInt($(a).attr('value'), 10);
var brel = parseInt($(b).attr('value'), 10);
return arel == brel ? 0 : arel < brel ? -1 : 1
}));
$(this).html($(“选项”,$(this)).sort(函数(a,b){
var arel=parseInt($(a).attr('value'),10);
var brel=parseInt($(b).attr('value'),10);
返回arel==brel?0:arel
资料来源:
实际结果:
<select name="option[285]">
<option value="298">Blazing Yellow</option>
<option value="299">Jet Black</option>
<option value="300">Tabacco Brown</option>
<option value="301">Optical White</option>
<option value="302">Fiery Red </option>
<option value="" selected="selected"> --- Please Select --- </option>
</select>
耀眼的黄色
黑色
烟草棕
光学白光
火红
---请选择--
预期结果:
<select name="option[285]">
<option value="" selected="selected"> --- Please Select --- </option>
<option value="298">Blazing Yellow</option>
<option value="299">Jet Black</option>
<option value="300">Tabacco Brown</option>
<option value="301">Optical White</option>
<option value="302">Fiery Red </option>
</select>
---请选择--
耀眼的黄色
黑色
烟草棕
光学白光
火红
问题似乎是parseInt(“”)
给定的NaN
使用arel
进行比较时给出了错误的结果
$(this).html($("option", $(this)).sort(function(a, b) {
var arel = parseInt($(a).attr('value'), 10) || 0;
var brel = parseInt($(b).attr('value'), 10)|| 0;
return arel == brel ? 0 : arel < brel ? -1 : 1
}));
$(this).html($(“选项”,$(this)).sort(函数(a,b){
var arel=parseInt($(a).attr('value'),10)| | 0;
var brel=parseInt($(b).attr('value'),10)| | 0;
返回arel==brel?0:arel
演示: