我有一个选择列表
<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进行排序的方法。 请帮忙!
答案 0 :(得分:7)
这是一个使用以下代码的工作小提琴: http://sebastienayotte.wordpress.com/2009/08/04/sorting-drop-down-list-with-jquery/
代码:
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
}))