首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据内容对下拉列表进行排序

根据内容对下拉列表进行排序
EN

Stack Overflow用户
提问于 2013-05-20 23:39:26
回答 1查看 102关注 0票数 0

所以我有一个按字母顺序排列的下拉列表:

代码语言:javascript
复制
$(".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元素可以包含两种类型的下拉列表。一个显示颜色,另一个显示大小。这种排序非常适合颜色。然而,在尺码上,我没有考虑衣服的尺码和鞋子的尺码。按字母顺序排列鞋子的尺码是很好的,但对于衣服,我希望它从最小的尺码到最大的尺码显示,这就成了一个问题。

下面是大小下拉菜单的显示方式:

鞋子

代码语言:javascript
复制
<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不等)

代码语言:javascript
复制
<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>

我正在试着找出如何对这两个不同的。有人能给我一些关于如何处理这种排序的建议吗?

**注意-在鞋的下拉列表中,该价格将添加到尺码之后。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-05-20 23:42:51

您可以使用JSON对象并将其用于您的比较函数。这很简单:

代码语言:javascript
复制
var shirtSizes = { "XS" : "0", "S" : "1", "M" : "2", "L" : "3", "XL" : "4"}

然后在对象中查找值时使用比较函数。

代码语言:javascript
复制
return shirtSizes[a.text] == shirtSizes[b.text] ? 0 : shirtSizes[a.text] < shirtSizes[b.text] ? -1 : 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16653096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档