2

我一直在尝试使用 for 循环填充数组并使用document.getElementById("spin " + i).value;

每个输入标记的ids我的 html 上的从 spin1 到 spin18。

关于我做错了什么有什么建议吗?或者我能改变什么?

var nums = [];

for(var i = 1; i <= 18; i++){
    var num[i] = parseInt(document.getElementById("spin" + i).value);

    nums.push(num[i]);

}

alert(nums.length);
4

3 回答 3

6

问题是什么?您从不提及生成什么样的结果或前端 html 代码是什么样的。

js 看起来是可编译的,但这里有一些指针。

数字 0 在 1 之前

养成这种思维定势是一个好习惯,而且它可以避免你以后犯愚蠢的错误。无论如何,只是为了加强这一点,下面是一个数字图表。

    0 10
    1 11
    2 12
    3 13
    4 14
    5 15
    6 16
    7 17
    8 18
    9 19

避免不必要的变量

可悲的是,拥有一个优化冗余代码的 js 编译器是一个新功能。但是,当您可以拥有一条线时,为什么还要维护两条线。

var nums = [];

for( var i = 0; i < 18; i++ ) {
    nums[i] = parseInt( document.getElementById("spin" + i).value );
}

不要推,插入

push 方法的开销很大,因此请谨慎使用。

记录器

控制台有一个内置的记录器,为什么不使用它来代替警报框呢?

console.log( nums.length );
于 2013-03-18T06:55:52.503 回答
1

试试这个

var nums = [];

for(var i = 1; i <= 18; i++){
    var num= parseInt(document.getElementById("spin" + i).value);

    nums.push(num);

}

alert(nums.length);
于 2013-03-18T06:37:20.380 回答
1

有几点需要注意:

  1. 正如 PSR 所提到的,您使用:
var num[i]

什么时候应该

var num
  1. getElementById(id).value仅适用于表单元素,您必须.innerHTML用于 div。

这对我有用:http: //jsfiddle.net/sbqeT/

于 2013-03-18T06:46:14.160 回答