2013-05-20 7 views
0

그래서 드롭 다운 알파벳순으로하는 일종의 있습니다정렬 드롭 다운

$(".product-actions select").each(function() { 
// Sort all the options by text. I could easily sort these by val. 
$(this).html($("option", $(this)).sort(function(a, b) { 
    return a.text == b.text ? 0 : a.text < b.text ? -1 : 1 
})); 

을});

product-class 요소는 두 가지 유형의 드롭 다운을 포함 할 수 있습니다. 하나는 색상을 표시하고 다른 하나는 크기를 표시합니다. 이 종류는 색상에 대해 완벽하게 작동합니다. 그러나 크기면에서 나는 옷의 크기와 구두 사이즈를 고려하지 않았습니다. 신발 사이즈를 알파벳순으로 표시하는 것은 좋지만 옷으로는 가장 작은 크기에서 가장 큰 크기까지 표시하고 문제가됩니다. 내가 노력하고있어

<select class="size" data-option-key="size" data-priority="0"> 
    <option value="color" selected="selected">size</option> 
    <option value="05"><span>05 - $198.00</span></option> 
    <option value="06"><span>06 - $198.00</span></option><option value="06.5"> 
</select> 

의류 (크기, XS, S, M, L에서 XL의 범위)

<select class="size" data-option-key="size" data-priority="0"> 
    <option value="color" selected="selected">size</option> 
    <option value="L(14-16)"><span>L(14-16) - $158.00</span></option> 
    <option value="M(10-12)"><span>M(10-12) - $158.00</span></option> 
    <option value="S(6-8)"><span>S(6-8) - $158.00</span></option> 
    <option value="XL(18)"><span>XL(18) - $158.00</span></option> 
    <option value="XS(2-4)"><span>XS(2-4) - $158.00</span></option> 
</select> 

신발 : 여기

는 크기 드롭 다운이 표시되는 방식입니다 이 두 가지 방법을 다르게 파악하는 것입니다. 아무도 나 에게이 정렬을 처리하는 방법에 대한 조언을 줄 수 있습니까?

** 주 - 신발 드롭 다운에서 해당 가격이 크기 다음에 추가됩니다.

감사합니다.

답변

0

JSON 개체를 사용하여 비교 기능으로 사용할 수 있습니다. 그것은 조용하고 간단합니다 : 객체의 값을 찾는 동안

var shirtSizes = { "XS" : "0", "S" : "1", "M" : "2", "L" : "3", "XL" : "4"} 

이 다음 비교 함수를 사용합니다.

return shirtSizes[a.text] == shirtSizes[b.text] ? 0 : shirtSizes[a.text] < shirtSizes[b.text] ? -1 : 1