我有一个选择下拉列表,需要按字母顺序排序。 我的下拉列表是通过jQuery动态构建的,它从PHP响应中获取数据。
这是构建下拉列表的代码
//- 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);
隐藏标签输入中填充了&#39;标签&#39;部分数据
[{"_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"]}]
我无法在我正在使用的数据库Mongo中对它进行排序,因为在其他地方使用它并不需要进行排序。我需要在jQuery中对它进行排序。
答案 0 :(得分: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>