3

我有一个选择列表

<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 代码中的列表中添加项目。但它们应该在浏览器页面中按字母顺序排列。

我一直在头疼,做了很多研发。但无法在页面加载时找到对 dropdpwnlist 进行排序的方法。请帮忙!

4

3 回答 3

8

这是一个使用以下代码的工作小提琴: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);
    });
}
于 2013-06-11T09:42:23.423 回答
0

编写一个方法并调用文档 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();
});
于 2013-06-11T09:40:14.573 回答
0

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

$("#id").html($("#id option").sort(function (a, b) {
    return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}))
于 2013-06-11T09:42:10.053 回答