使用getElementById动态读取数组

时间:2012-05-13 19:09:05

标签: javascript

我正在尝试从用户动态创建的表单中读取值,并将它们插入到二维数组中。任何字段的ID都是动态创建的,它的值为11,12,13等,具体取决于表的行和列。 我尝试使用getElementByID读取它但它似乎不起作用。功能如下:

            function readMatrix () {
        for (i = 0; i < k; i++) {
            for (j = 0; j < k; j++)
            A[i][j]=parseFloat(getElementById(ij).value, 10);
        }
    }

3 个答案:

答案 0 :(得分:2)

首先,document.getElementById(...) - 该部分很重要,否则无法找到getElementById功能。

接下来,您要查找名为ij的变量,这不是您想要的。您希望连接两个数字,因此可以i*10+j""+i+j,无论您喜欢哪个。

答案 1 :(得分:1)

getElementById调用和参数存在问题。试试这个:

function readMatrix() {
    for (var i = 0; i < k; i++) {
        for (var j = 0; j < k; j++) {
            var id = "" + (i + 1) + (j + 1);
            A[i][j] = parseFloat(document.getElementById(id).value);
        }
    }
}​

请注意,您的ID从11开始,但不是00,因此会添加(i + 1) + (j + 1)部分。

DEMO: http://jsfiddle.net/VnvM2/

答案 2 :(得分:1)

我猜,元素ID是ij的连结,而不是加法。

所以,它应该有效,

   function readMatrix () {
        for (i = 0; i < k; i++) {
            for (j = 0; j < k; j++)
            A[i][j]=parseFloat(document.getElementById(i + '' + j).value, 10);
        }
    }