Javascript TypeError:x[0]未定义,其中x本身是一个数组

Javascript TypeError:x[0]未定义,其中x本身是一个数组,javascript,Javascript,我有一个JS函数,其中的一部分是: for (i = 0; i < kodoj.length; i++) { var x = document.getElementsByName(kodoj[i]); if (kodoj[i]=="zh-CN") { var y = document.getElementsByName("zh-TW"); if (x[0].checked || y[0].checked) { /*do this*/ }

我有一个JS函数,其中的一部分是:

for (i = 0; i < kodoj.length; i++) {
    var x = document.getElementsByName(kodoj[i]);
    if (kodoj[i]=="zh-CN") {
        var y = document.getElementsByName("zh-TW");
        if (x[0].checked || y[0].checked) { /*do this*/ }
        else if (x[1].checked || y[1].checked) { /*do this*/ }
        else if (x[2].checked && y[2].checked) { /*continue*/ }
        else {
            alert("........");
            return;
        }
    }
    else if etc.
for(i=0;i
我得到“x[0]未定义”,但从来没有“x[1]或x[2]未定义” 读过一些关于声明二维数组的类似问题, 我在函数var x=document.getElementsByName(“zh CN”)的上述部分添加了; 但这没有帮助。 我只是一个自学成才的程序员,所以我不知道查询等任何特殊功能。
有人能帮我吗?

我想你应该把I=0的值改成I=1


kodoj[0]将为您提供null,因此您获取“x[0]未定义”错误

您确定x不是空数组吗?
您可能永远不会得到“x[1]或x[2]未定义”,因为在x为空的情况下,执行不会达到这一步。

您应该添加HTML结构的(部分)。可能是
getElementsByName()返回的节点列表
只是空的。此外,
kodoj
中包含什么?作为一般规则:JavaScripts在遇到第一个错误时停止执行。这就是为什么您看不到“x[1]未定义”消息的原因。请检查
if(x.length)
然后只检查其他条件。如果您在这里发布
html
很好,谢谢。事实上,它在程序中,但我在发送的程序部分中遗漏了它。此外,我知道Javascript在遇到错误时的行为。这就是为什么我删除了有罪的段落,之后的几行是x[1],x[2],另一行是x[0],按该顺序。结果是x[0]再次未定义。关于HTML结构:一个包含三个放射组的长列表,包含在一个表中,每个放射组都与将一个确定的单词翻译成一种语言有关,说明翻译是否与翻译的单词相似,或者没有结论。为什么kodoj[0]give null?其内容只是1个元素(然后它的值为0、1或2,因为它是上一页的发布值,其中它是一个三成员放射组的输出)或3个元素(然后它是一个三成员布尔数组,取决于实际页面上的放射组输出)的子数组我删除了前面的注释,因为现在已经解决了。我仍然想检查x[0]是否为空。我找到了。数组kodoj[I]包含57个两个或三个字母的字符串,其中只有一个与document.getElementsByName的名称不符:数组编号32。我再次学习了……。我想我不再需要您的帮助了。谢谢。