2009-05-18 61 views
1

這個問題是類似於這個How do I add options to a DropDownList using jQuery? 但我想添加它在一個有序的方式。另一個問題中的例子只是將它添加到列表的末尾。代碼如下:如何使用jQuery(有序)向DropDownList添加選項?

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

假設列表已包含3個項目:「Blah」,「Foo」和「Zebra」。我希望能夠在下拉列表中添加兩個新選項(「測試」和「另一個」),以便使用(「另一」,「布拉赫」,「美孚」,「測試」和「斑馬」) jQuery的。

任何幫助非常感謝!

回答

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) 
    ); 
}); 
1

看看jQuery相關答案here。當然,在調用排序方法之前,您需要添加新的選項。

相關問題