2016-03-03 88 views
2

我有一个选择下拉列表,需要按字母顺序排序。 我的下拉是通过jQuery动态构建的,它从PHP响应中获取数据。通过jQuery对选择下拉列表进行排序?

这是建立下拉代码

//- Create an array of the acceptable values for this udf (tags) 
var array = $('input[name=hidden-tags]').val().split(','); 

var dropdown = ""; 

dropdown += "<option disabled selected>Valid options</option>"; 

$.each(array,function(i){ 
    dropdown += "<option value='"+array [i]+"'>"+ array[i] +"</option>";  
}); 

//- Add in validation list to the dropdown 
$("#autofix-dropdown").html(dropdown); 

隐藏的标签输入填充了这个数据的“标签”部分

[{"_id":{"$id":"56d42175b23eec3f1a8b4567"}, 
"agency_id":"01721487", 
"rule_name":"UDF 1", 
"rule_desc":"...", 
"rule_type":"account", 
"vali_field":"udf_1", 
"vali_type":"validation_list", 
"allow_blank":"allow_blank", 
"folder":"5637503fb23eec5a110fe4b4", 
"AutoFix":{"kbbb":[""],"kathryn pascoe":["kathryn pascoe"]}, 
"tags":["kbbb","test","kathryn pascoe","mabel chan"], 
"accounts":["SIT0001","SIT0002","SIT0003","NCC0001","NCC0002","NCC0003","NCC0004"]}] 

我不能在蒙戈订购它这是我使用的数据库,因为这用于其他地方,它不需要排序。我需要在jQuery中进行排序。

+5

会不会'中的Array.sort()''你。每个$之前(array..'做的正是你需要什么? – apokryfos

+0

@apokryfos完美,甚至没有想想这个,谢谢 – Kieron606

回答

4

只需使用sort

sort()方法排序的阵列中的项目。

/* just for the demo, initial the data like the ajax do */ 
 
var tags = ["kbbb","test","kathryn pascoe","mabel chan"]; 
 
$('input[name=hidden-tags]').val(tags.join(',')); 
 

 

 
//- Create an array of the acceptable values for this udf (tags) 
 
var array = $('input[name=hidden-tags]').val().split(','); 
 
console.log(array); 
 
array = array.sort(); 
 
console.log(array); 
 

 
var dropdown = ""; 
 

 
dropdown += "<option disabled selected>Valid options</option>"; 
 

 
$.each(array,function(i){ 
 
    dropdown += "<option value='"+array [i]+"'>"+ array[i] +"</option>";  
 
}); 
 

 
//- Add in validation list to the dropdown 
 
$("#autofix-dropdown").html(dropdown);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input type="hidden" name="hidden-tags" /> 
 
<select id="autofix-dropdown"></select>

+0

感谢Mosh,有人已经给了我这个解决方案,但是这确实奏效了。 – Kieron606