通过jQuery对选择下拉列表进行排序?
问题描述:
我有一个选择下拉列表,需要按字母顺序排序。 我的下拉是通过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中进行排序。
答
只需使用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
会不会'中的Array.sort()''你。每个$之前(array..'做的正是你需要什么? – apokryfos
@apokryfos完美,甚至没有想想这个,谢谢 – Kieron606