javascript - 当前选择的选项未正确显示

标签 javascript

这是一个演示问题的 jsFiddle。看看什么时候重新排序。主要select="selected"没有选中。 http://jsfiddle.net/zuuyj/

我有一个选择框,我使用这个脚本进行排序

$(document).ready(function () {
    var options = $('select.pca31 option');
    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) {
        console.log(i);
        o.value = arr[i].v;
        $(o).text(arr[i].t);
    });

这可以正常工作,直到您有一个选定的选项(编辑项目)选定的选项不显示为选定的,因为它重新排序列表。

我试过了

$("select.pca31 option").empty().append( options );

基于此

What is the most efficient way to sort an Html Select's Options by value, while preserving the currently selected item?

但我只是得到一个无限循环。我明白为什么,但我不知道如何解决它。

最佳答案

适用于 OP 的解决方案是按原样实现这篇文章的答案:

What is the most efficient way to sort an Html Select's Options by value, while preserving the currently selected item?

代码

var my_options = $(".pca31 option");

my_options.sort(function(a,b) {
    if (a.text > b.text) return 1;
    else if (a.text < b.text) return -1;
    else return 0;
})

$(".pca31").empty().append( my_options );

关于javascript - 当前选择的选项未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18285036/

相关文章:

javascript - JavaScript 中的全名正则表达式也接受空格

javascript - 如何编码 URL 参数?

javascript - 将 Angular JS 与 JSP 和 Servlet 集成

javascript - 为动态添加的元素绑定(bind)独立事件

javascript - 引用模块 javascript 中的另一个函数

javascript - YQL 从请求的页面中移除 &lt;script&gt;&lt;/script&gt; 标签内的数据

javascript - 如何在 Babylon.js 中为形状着色?

javascript - 为什么 .click() 不触发右键单击?

javascript - javascript 中 `Response.Redirect("~/abc.aspx") 的等效代码是什么?

javascript - 使用javascript函数获取html控件值