Javascript 变量内容不保存在函数中

Javascript 变量内容不保存在函数中,javascript,Javascript,我有个问题找不到解决办法。 在我的代码中有一个名为list的变量。 变量list应该使用getElementsByName()检索输入元素, 但该变量在if语句之后为空(即list.length==0) 结束了。 在下面的代码中,在for循环的开始处,列表。长度为零或未定义 为什么会发生这种情况 功能是: function chekRadioToAnswer() { var signAnswers = new Array(0, 0, 0, 0); var grades = [[0

我有个问题找不到解决办法。 在我的代码中有一个名为
list
的变量。 变量
list
应该使用
getElementsByName()
检索输入元素, 但该变量在
if
语句之后为空(即
list.length==0
) 结束了。 在下面的代码中,在
for
循环的开始处,
列表。长度为零或未定义

为什么会发生这种情况

功能是:

function chekRadioToAnswer() {
    var signAnswers = new Array(0, 0, 0, 0);
    var grades = [[0, 5, 10, 15], [15, 12, 10, 5, 0], [0, 5, 10, 15, 20], [0, 0, 20, 30]];
    var answers = new Array(0, 0, 0, 0, 0, 0);

    for (num = 2; num <= 5; num++) {
        if (num == 2) {
            list = document.getElementsByName("answer2"); 
        }
        if (num == 3) {
            list = document.getElementsByName("answer3"); 
        }
        if (num == 4) {
            list = document.getElementsByName("answer4"); 
        }
        if (num == 5) {
            list = document.getElementsByName("answer5"); 
        }

        for (i = 0; i < list.length; i++) {
            if (list[i].checked) {
                var value = document.getElementById("hiddenAnswers").getAttribute("value");
                 document.getElementById("hiddenAnswers").setAttribute("value", (value + grades[num - 2][i]));
                 break;
             }
        }

        list.length = 0;
    }
    return false;
} 
函数chekRadioToAnswer(){
var signAnswers=新数组(0,0,0,0);
风险值等级=[[0,5,10,15]、[15,12,10,5,0]、[0,5,10,15,20]、[0,0,20,30];
var answers=新数组(0,0,0,0,0,0);

对于(num=2;num如果您试图创建输入数组,则需要首先声明列表并为其分配一个空数组:

var list = [];
然后使用
push
添加到数组中:

//If you are going to use getElementsByName, take the first member of the array

var rdo = document.getElementsByName("answer3");

for (var x = 0; x < rdo.length; x++){
  if (rdo[x].checked){
    list.push(rdo[x]);
  }
}
//如果要使用getElementsByName,请获取数组的第一个成员
var rdo=document.getElementsByName(“answer3”);
对于(var x=0;x
whatever=document.getElementsByName(名称)
如果找不到给定名称的元素,则为
whatever
分配一个空数组。确保元素名称正确


另外,使用
var
关键字声明变量也很好。这可以防止许多可怕的错误。

如果你能告诉我为什么要构建2d数组,我会给你投票。我真的看不出有什么理由这么做……那不是2d数组……你认为我为什么要声明2d数组?
list.push([some,array])
=>
列表=[[一些,数组]]
.getElementsByName返回一个数组我很抱歉我以为它是
getElementById
不是
getElementsByName
将进行编辑…嗯…这看起来仍然不对。for循环中的单词
checked
告诉我们一些关于输入元素性质的重要信息。您是在建议如果用户没有检查第一个框/单选按钮,然后应丢弃其输入