我有一个文本框和一个选择框,其中的选项与表中的列相同。我希望能够在框中输入,选择一个列,按一个按钮,然后将其复制到框中的每个框中。我在语法上遇到了困难,因为使用变量是阻止此工作的唯一因素。当我投入实际价值时,它运作正常。
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,则选择确实如我的测试提示所示。 / p>
如何在for循环中正确使用变量?
答案 0 :(得分:3)
如果我理解正确,您正在寻找的语法是:
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
相同的属性。
另请注意,您应使用choice
关键字声明$i
和var
变量(如我的示例所示),否则它们将成为全局变量。
答案 1 :(得分:0)
function testScript(fill) {
choice=document.form1.column.value+'[]';
for($i=0;$i<fill;$i++){
document.form1.elements[choice][$i].value=document.form1.copy.value;
}
}
更新
在此处查看示例: jsfiddle link