2013-07-27 3 views
1

selectbox에서 값별로 옵션을 정렬하려고합니다. 정렬은 아래 code.But를 사용하여 괜찮습니다. 옵션 값이 null 인 경우 맨 아래에 있어야합니다.Jquery를 사용하여 값순으로 정렬 옵션

$(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 
})); 

출처 : Sorting Select box with jQuery

실제 결과 :

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

예상 결과 :

문제는 parseInt('') 사용과 비교했을 때 arel < brel 잘못 제공 NaN 주어진 것 같다
<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> 

답변

3

레 sult

$(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 
})); 

데모 : Fiddle

+0

예. 고마워. – Parthi04

관련 문제