Javascript-无法设置未定义的属性“值”

Javascript-无法设置未定义的属性“值”,javascript,properties,undefined,Javascript,Properties,Undefined,我正在创建一个Javascript循环,它可以放在程序中而不是编写 document.entry.a_uuu到z_uuu.value=ax到zx 我迄今为止的工作: function param() { var counter2 = "ax bx cx dx fx gx hx ix jx kx lx mx nx ox px qx rx sx tx ux vx wx xx yx zx"; var alph2=counter2.split(" "); for (var i=0;i<26

我正在创建一个Javascript循环,它可以放在程序中而不是编写

document.entry.a_uuu到z_uuu.value=ax到zx

我迄今为止的工作:

    function param() {
var counter2 = "ax bx cx dx fx gx hx ix jx kx lx mx nx ox px qx rx sx tx ux vx wx xx yx zx";
var alph2=counter2.split(" ");
for (var i=0;i<26;i++){
counter2[i]=1;
}
var letters2 = ".a_ .b_ .c_ .d_ .e_ .f_ .g_ .h_ .i_ .j_ .k_ .l_ .m_ .n_ .o_ .p_ .q_ .r_ .s_ .t_ .u_ .v_ .w_ .x_ .y_ .z_ ";
var let2=letters2.split(" ");

var entry = document.getElementById("entry");
document.entry[let2[i]].value=alph2[i];
}
但是Chrome显然不喜欢倒数第二行,说它不能设置undefined的值,而entry是HTML中的一个表单

我是Javascript初学者,非常感谢您的耐心:-

那该怎么办?计数器是一个基本字符串,因此这将完全无效

如果使用括号表示法,则需要从点表示法属性访问中省略点。它只能是数组中的属性名称:

let2 = ["a_", "b_", …]
另外,您并没有在let2数组上循环,而是访问其中的第i个值——其中我仍然有值26。把for循环绕在那上面

除此之外,您可以轻松地生成连续的字母,而不需要在字符串或数组中列出整个字母表。更好:

var els = document.forms.entry.elements;
for (var i=0; i<26; i++) {
    var chr = String.fromCharCode(97 + i),
        alph = chr + "x",
        lett = chr + "_";
    if (els[lett] != null)
        els[lett].value = alph;
}

也许你想要document.forms.entry?你知道你在做什么吗?您的变量条目告诉我们您没有,因为document.entry与变量无关,而且似乎是一种访问元素的奇怪方式?adeneo:坦白地说,没有,我现在真的不知道该怎么做,因为我是初学者。正因为如此,我希望得到一个解释,而不是一个告诉我自己是个笨蛋的帖子;-伯吉:不,那不行。我们不可能都得到我们所希望的,有时现实反而会咬我们的屁股。可能是重复的谢谢,但你介意引导我一点循环吗?我真的只是一个初学者-谢谢,那么for循环呢,做counter2[I]=1;当计数器明显是字符串时?然后是使用i的let2数组,但在该上下文中没有i,它在循环之外,入口变量就像问题中的其他任何东西一样,没有意义。如果你能弄清楚代码是如何工作的,你真的很棒!
let2 = ["a_", "b_", …]
var els = document.forms.entry.elements;
for (var i=0; i<26; i++) {
    var chr = String.fromCharCode(97 + i),
        alph = chr + "x",
        lett = chr + "_";
    if (els[lett] != null)
        els[lett].value = alph;
}