0

我正在尝试从用户动态创建的表单中读取值并将它们插入到二维数组中。任何字段的 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);
        }
    }
4

3 回答 3

2

首先,它是document.getElementById(...)- 那部分很重要,否则它找不到getElementById功能。

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

于 2012-05-13T19:12:26.717 回答
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 是从11but not开始的00,因此(i + 1) + (j + 1)添加了部分。

演示:http: //jsfiddle.net/VnvM2/

于 2012-05-13T19:13:10.037 回答
1

我猜,元素 id 是 and 的串联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);
        }
    }
于 2012-05-13T19:14:21.767 回答