<select>下拉菜单错误地订购数字

时间:2018-02-21 09:40:55

标签: javascript jquery html css

我有一个选择下拉列表,它从我们的服务器动态填充文件名,在服务器目录中,所有内容都正确排序。 但是在下拉列表中,它会将更高的整数设置为高于澳大利亚#11来自澳大利亚#100等,如图所示。 虽然我理解如何在html中更改订单,但我不确定它是否可以在动态填充时实现? 还显示了在目录中正确排序但未在下拉列表中显示的图像。 落下: 目录:

1 个答案:

答案 0 :(得分:1)

列表按字母顺序排序,因此“#11 ”位于“#10 9”之后。

要解决此问题,您可以编写自己的排序函数,仅考虑数字部分而不是整个字符串。这样它就会按数字排序而不是按字母顺序排序。这是一个快速的ES6解决方案。

let countryList  =    [/*list here*/];

countryList      =    countryList.sort( (eachLine, prevLine) => eachLine.split("#")[1].split(" ")[0] - prevLine.split("#")[1].split(" ")[0] );

这只是根据字符串的数字部分对其进行排序,而忽略其余部分。