如何使用jQuery(已订购)向DropDownList添加选项?

时间:2009-05-18 20:30:29

标签: jquery sorting drop-down-menu

此问题类似于此问题How do I add options to a DropDownList using jQuery? 但我想以有序的方式添加它。另一个问题中的示例只是将其添加到列表的末尾。代码如下:

var myOptions = {
      1: "Test"
      2: "Another"
};
$.each(myOptions, function(val, text) {
      $('#Projects').append(
           $('<option></option').val(val).html(text)
      );
});

假设该列表已包含3个项目:“Blah”,“Foo”和“Zebra”。我希望能够在下拉列表中添加两个新选项(“Test”和“Another”),以便使用它(“Another”,“Blah”,“Foo”,“Test”和“Zebra”)进行排序jQuery的。

非常感谢任何帮助!!!

2 个答案:

答案 0 :(得分:1)

看看jQuery相关的答案here。当然,在调用sort方法之前,您需要添加新选项。

答案 1 :(得分:1)

放手一搏:

// Sort Function
function sortAlpha(a,b) { 
    if(a.name > b.name) {
        return 1;
    } else if(a.name < b.name) {
        return -1;
    }
    return 0;
}


// Options you want to add
var myOptions = [ {id:1, name:"Test"}, {id:2, name:"Another" } ];

// Create array from existing options and merge
$.merge(myOptions, 
    $.map( $('#Projects').find('option'), function(n){ 
        return { id:n.value, name:n.innerHTML}; 
    }) 
);

// Sort all options using above sort function
myOptions.sort(sortAlpha);

// Clear the <select> of existing options
$('#Projects').empty();

// Add the options to the <select>
$.each(myOptions, function() {
      $('#Projects').append(
           $('<option></option').val(this.id).html(this.name)
      );
});