如何排序选择列表中的选项,但保留一个在顶部

How to sort options in select list but keeping one at the top

本文关键字:保留 一个 顶部 排序 何排序 选择 列表 选项      更新时间:2023-09-26

现在我有下面的代码遍历我的列表并按字母顺序排序:

<select id="country" class="inputList" name="country">
    <option value="">Select your country</option>
    <option value='0'>Afghanistan</option>
    <option value='1'>Albania</option>
    <option value='2'>Algeria</option>
    <option value='3'>Andorra</option>
    ...
</select>

如何使它使脚本排除选项,没有值(第一个"选择你的国家)?

$("#country").html($("#country option").sort(function (a, b) {
return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}))

非常感谢!

编辑:Offbeatmammal指出的解决方案如下:对不包含第一项的下拉列表中的项进行排序

[把注释变成答案,因为它解决了问题]

我可能会作弊…把上面的那个剥下来,排序,然后放回去……事实上,这个答案——对不包含第一项的下拉列表中的项进行排序——就是这样做的

我通常将该项从列表中取出,对其余项进行排序,然后重新插入。