元素名称中的Javascript变量

元素名称中的Javascript变量,javascript,Javascript,我有一个文本框和一个选择框,其中的选项与表中的列相同。我希望能够在框中键入内容,选择一列,按下一个按钮,让它将框中的内容复制到列中的每个框中。我很难理解语法,因为使用变量是唯一阻止它工作的东西。当我输入真实值时,它工作得很好 function testScript(fill) { choice=document.form1.column.value; alert (fill); alert (choice); for($i=0;$i<fill;$i++){ docu

我有一个文本框和一个选择框,其中的选项与表中的列相同。我希望能够在框中键入内容,选择一列,按下一个按钮,让它将框中的内容复制到列中的每个框中。我很难理解语法,因为使用变量是唯一阻止它工作的东西。当我输入真实值时,它工作得很好

function testScript(fill) {
choice=document.form1.column.value;
alert (fill);
alert (choice);
    for($i=0;$i<fill;$i++){
        document.form1.choice[$i].value=document.form1.copy.value;
    }
}
通过警报测试的填充为我提供了表中的行数,效果良好。选择是我的选择下拉框。如果我键入document.form1.make[$1].value=它将填充我在make列的每一行中键入的内容。如果我在选择框中选择make,则选项会显示make,如我的测试警报所示


您知道如何在for循环中正确使用该变量吗?

如果我理解正确,您需要的语法是:

document.form1[choice][$i].value=document.form1.copy.value;
一般来说,要访问对象obj的属性prop1,可以使用两种语法:

obj.prop1
// or
obj["prop1"]
使用方括号语法,您可以使用任何表达式,只要其计算结果为所需属性名称的字符串,因此:

var x = "prop1";
obj[x]
// or
var x = "pr", y = "op1";
obj[x + y]
…都将访问与obj.prop1相同的属性


还请注意,您应该像在我的示例中一样使用var关键字声明您的选择和$i变量,否则它们将成为全局变量。

如果我理解正确,您要查找的语法是:

document.form1[choice][$i].value=document.form1.copy.value;
function testScript(fill) {
    choice=document.form1.column.value+'[]';
    for($i=0;$i<fill;$i++){
        document.form1.elements[choice][$i].value=document.form1.copy.value;
    }
}
一般来说,要访问对象obj的属性prop1,可以使用两种语法:

obj.prop1
// or
obj["prop1"]
使用方括号语法,您可以使用任何表达式,只要其计算结果为所需属性名称的字符串,因此:

var x = "prop1";
obj[x]
// or
var x = "pr", y = "op1";
obj[x + y]
…都将访问与obj.prop1相同的属性

还请注意,您应该像在我的示例中一样使用var关键字声明您的选项和$i变量,否则它们将成为全局变量

function testScript(fill) {
    choice=document.form1.column.value+'[]';
    for($i=0;$i<fill;$i++){
        document.form1.elements[choice][$i].value=document.form1.copy.value;
    }
}
更新

在此处查看示例:

更新

在此处查看示例:

我相信你对我的理解是正确的,但我已经尝试过你的建议,不幸的是,它不起作用。我不知道还有什么好尝试的。我相信你对我的理解是正确的,但是我已经尝试了你的建议,不幸的是,它不起作用。我不知道还能试什么。我试过你的建议,但没用。我也尝试过许多其他的变化。你认为我需要一个不同的方法来解决这个问题,还是你确定这是可能的。这似乎是最好的方法,但我确定。对不起,我已经更新了代码。我想这正是你需要的。我试过你的建议,但没有用。我也尝试过许多其他的变化。你认为我需要一个不同的方法来解决这个问题,还是你确定这是可能的。这似乎是最好的方法,但我确定。对不起,我已经更新了代码。我想这就是你需要的