不按值或按字母顺序排列下拉列表

时间:2015-04-06 19:08:35

标签: jquery sorting

我有一个非常开放的问题。我知道如何按值和按字母顺序通过jQuery对下拉列表进行排序。但有没有办法将其排序为自定义订单,这不是按价值或按字母顺序排列的?

2 个答案:

答案 0 :(得分:1)

您可以添加数据顺序属性,然后使用该值对选项进行排序:

DEMO:http://jsfiddle.net/kpt19djr/1/

<select id="test">
    <option data-order="7">opt 1</option>
    <option data-order="4">opt 2</option>
    <option data-order="1">opt 3</option>
    <option data-order="5">opt 4</option>
    <option data-order="6">opt 5</option>
    <option data-order="2">opt 6</option>
    <option data-order="3">opt 7</option>
</select>

JS:

$("#test").html($("#test option").val(function(){
    return $(this).data('order');
}).sort(function (a, b) {
    var a = parseInt(a.value,10), b = parseInt(b.value,10);
    return a < b ? -1 : 1;
}));

答案 1 :(得分:0)

添加其他字段以捕获排序顺序意图,按该字段排序,并隐藏视图中的字段...