javascript - HTML - 用十进制值排序选择

标签 javascript html object

我遇到麻烦了... 我正在构建的动态表单中出现了这种奇怪的输出。

基本上,当用户选择一个选项时,我有一个 JavaScript 来完成表单,从“土壤类型”»“倾斜 Angular ”»“水速”开始。现在,'Water Speed' 有十进制值,它们都加起来可以很好地添加到下拉选择中,但完全乱序。

我的选择列表是这样的:

1, 2、 3、 1.5, 2.5

代替:

1, 1.5, 2、 2.5, 3

我尝试将它们全部转换为浮点值,但没有成功……让我烦恼的是,对象及其属性以正确的顺序声明,并且 console.log() 输出它们也很好,所以我很想知道这是否只是 HTML 错误以及是否有任何解决方法。

顺便说一句,我将它们添加到选择标签的方式是:

for(speed in obj[speeds]){
$('<option value=\"'+speed+'\">'+speed+'</option>').appendTo('select[name=waterspeed]');
        }

提前致谢!

最佳答案

首先尝试对速度数组进行排序:

obj[speeds].sort(function(a, b) {
    return a - b
});

此外,通常不建议将 for in 循环用于数组。考虑使用“常规”for 循环:

for(var i = 0, max = obj[speeds].length; i < max; i++) {
   var speed = obj[speeds][i];
}

关于javascript - HTML - 用十进制值排序选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8703265/

相关文章:

javascript - 如何使用jquery.validate执行验证?

javascript - 有条件地在 return 语句中包含 json 字段

Python:将对象分组在一起

javascript - 如何在div中制作可拖动的图像?

javascript - 动态图像标签

javascript - 使用函数检查子对象是否为真

python - 在 Python 中将 str 数据转换为文件对象

javascript - 将元素 ID 传递给 Javascript 函数

javascript - 远程 jQuery 验证在验证时不会触发

Html 和 CSS 媒体不适合我