我正在使用以下 jQuery 对表单中的选择元素进行排序:
$('select.select-sortable').each(function () {
var options = $(this).children();
var arr = options.map(function(_, o) { return { t: $(o).text(), v: o.value }; }).get();
arr.sort(function(o1, o2) { return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0; });
options.each(function(i, o) {
o.value = arr[i].v;
$(o).text(arr[i].t);
});
});
排序有效,但显示的值会在每次页面刷新时发生变化。无论存在多少选项,它都会按照第 1 选项 -> 第 3 选项 -> 第 2 选项 -> 第 1 选项的顺序变化。
我已经添加$(this).children(":first").attr("selected", true);
到循环中,它将选择锁定到第一个选项,但我仍然不明白为什么 dsiplay 会发生变化,以及为什么按这个顺序。有没有人有任何想法?