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

时间:2012-01-02 16:47:13

标签: javascript html object

我在这里遇到麻烦...... 我正在从我正在建立的动态形式中获得这种奇怪的输出。

基本上我有一个JavaScript填写表格,而用户选择一个选项,从'土壤类型'»'坡度角'»'水速'开始。现在,'水速'有十进制值,它们都可以合计下拉选择,但完全没有问题。

我的选择列表如下:

1, 2, 3, 1.5, 2.5

而不是:

1, 1.5, 2, 2.5, 3

我尝试将所有这些转换为浮动值而没有运气......什么在困扰我,是对象和它的propreties以正确的顺序声明,console.log()输出它们也很好,所以我是好奇,看看这是否只是HTML错误,以及是否有任何解决方法。

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

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

首先尝试对速度阵列进行排序:

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

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

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