2013-05-20 2 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 
})); 

});

Элемент класса продукта может содержать два типа выпадающих списков. Один, который отображает цвета и тот, который отображает размеры. Этот вид отлично подходит для цветов. Однако в размерах я не учитывал размеры одежды и размеры обуви. Размеры ботинок по алфавиту великолепны, но с одеждой я хочу, чтобы он отображался от самого маленького размера до самого большого, и это становится проблемой.

Вот как появляются выпадающие размер:

обувь

<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 
Смежные вопросы