Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Jquery按值排序选项_Jquery_Drop Down Menu - Fatal编程技术网

使用Jquery按值排序选项

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

我正在尝试按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 : 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
演示: