如何显示带有排序下拉列表的页面?

时间:2013-06-11 09:36:31

标签: javascript jquery html sorting select

我有一个选择列表

<select id="select_zone">
  <option value="north">North</option>
  <option value="east">East</option>
  <option value="south">South</option>
  <option value="west">West</option>
</select>

现在我希望列表中的项目使用jquery以排序方式显示。我应该能够手动(以随机顺序)在html代码中的列表中添加项目。但它们应按字母顺序排列在浏览器页面中。

我一直在打破我的头脑,做了很多R&amp; D.但是无法在加载页面时找到对dropdpwnlist进行排序的方法。 请帮忙!

3 个答案:

答案 0 :(得分:7)

这是一个使用以下代码的工作小提琴: http://sebastienayotte.wordpress.com/2009/08/04/sorting-drop-down-list-with-jquery/

http://jsfiddle.net/Rz6xv/

代码:

function sortDropDownListByText() {
    // Loop for each select element on the page.
    $("select").each(function() {

        // Keep track of the selected option.
        var selectedValue = $(this).val();

        // 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 one option.
        $(this).val(selectedValue);
    });
}

答案 1 :(得分:0)

编写一个方法并调用document ready()

function sortMycombo() {
   $("#select_zone").html($('#select_zone option').sort(function(x, y) {
         return $(x).text() < $(y).text() ? -1 : 1;
   }))
   $("#select_zone").get(0).selectedIndex = 0;
   e.preventDefault();
});

答案 2 :(得分:0)

你可以使用jQuery这样的东西:

$("#id").html($("#id option").sort(function (a, b) {
    return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}))