2010-06-03 48 views

回答

14

您可以使用如下的Javascript JQuery函數。我沒有完全測試它,但它必須工作。

function Sortit() { 
     var $r = $("#MySelect option"); 
     $r.sort(function(a, b) { 
      if (a.text < b.text) return -1; 
      if (a.text == b.text) return 0; 
      return 1; 
     }); 
     $($r).remove(); 
     $("#MySelect").append($($r)); 
     } 

這裏您選擇的標籤應該有一個Id MySelect。你也可以用普通的javascript來做到這一點。這將按照選項的顯示文本排序。相反,如果你想每個選項的值進行排序,可以使用排序如下

$r.sort(function(a, b) { 
       return a.value-b.value; 
      }); 
0

如果你不介意使用jQuery插件,Tablesorter做得很好。

1

我曾經非常相似@ josephj1989的方法。但是,如果您的下拉列表中有字符串值,則仍需要指定1,-1或0值(至少我是這樣做的)。

function SortList(listname) { 
    var $r = $(listname + " option"); 
    $r.sort(function(a, b) { 
     return (a.value < b.value) ? -1 : (a.value > b.value) ? 1 : 0; 
     //or you can have a.text, b.text, etc 
    }); 
    $($r).remove(); 
    $(listname).append($($r)); 
}