javascript - 使用 javascript/jQuery 对选择列表中的选项进行排序...但不是按字母顺序排序

标签 javascript jquery select

我正在寻找一个函数,它将获取选择列表中的选项列表,并按字母顺序对它们进行排序,但有所不同。所有带有文本“NA”的值都应被推到列表的底部。

给出一个列表 -

<select>
    <option value="1">Car</option>
    <option value="2">Bus</option>
    <option value="3">NA</option>
    <option value="4">Bike</option>
    <option value="5">Tractor</option>
    <option value="6">NA</option>
</select>

我们最终应该得到 -

<select>
    <option value="4">Bike</option>
    <option value="2">Bus</option>
    <option value="1">Car</option>
    <option value="5">Tractor</option>
    <option value="3">NA</option>
    <option value="6">NA</option>
</select>

NA 的顺序并不重要。

并且不要问为什么我不能只删除 NA(或者为什么会有多个具有相同文本但基础值不同的选项,因为我也不同意它。

最佳答案

演示:http://jsfiddle.net/4bvVz/

function NASort(a, b) {    
    if (a.innerHTML == 'NA') {
        return 1;   
    }
    else if (b.innerHTML == 'NA') {
        return -1;   
    }       
    return (a.innerHTML > b.innerHTML) ? 1 : -1;
};

$('select option').sort(NASort).appendTo('select');

关于javascript - 使用 javascript/jQuery 对选择列表中的选项进行排序...但不是按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6670041/

相关文章:

javascript - 点击叠加效果一次触发所有叠加

javascript - 想更改 jcarousel 皮肤,但现在 div 完全丢失

javascript - 如何以编程方式将网页的各个部分指示为 "selected"

javascript - 在JS中选择带有文本的div

php - 查询不返回任何结果

javascript - Jasmine 测试 - 优先

javascript - 有没有办法使用单个工具栏 DOM 元素来拥有多个内联配置的 ckeditors

javascript - jQuery 选择器多选菜单/正则表达式

javascript - 对象 #<HTMLHeadingElement> 没有方法 'fadeOut'

mysql - 从数字 1 开始列出查询本身的结果