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 に答える