0

我是 javascript 和 jquery 的新手,想知道是否有人可以让我了解为什么这不能正常工作。

我有一个下拉框,用户从中选择一个值,然后是“进程”。处理后,下拉列表和文本框的值存储在数组中。我希望用户能够基本上将相同的下拉选择和文本框数据再次存储在数组中,但现在存储在一个新的值对中。

第一个商店是 TestArray[0][0] = "Textbox Value"

如果再次“处理”,它将是 TestArray[1][0] = "Textbox Value"

这样我可以稍后解析并计算用户“处理”下拉选择的次数;

var oneClickReport = $("#reportName").val();
    if(oneClickReport == "Sample Report One"){
        var arrayOneCount = reportOneArray.length;
        var totalHouseholds = 0;
            $("#reportChecks span:visible").each(function(){            
                if($(this).find(':checkbox').prop('checked')){
                    var HHName = $(this).text();
                    reportOneArray.push(HHName);
                    arrayTest[arrayOneCount][totalHouseholds] = HHName;
                }
            totalHouseholds += 1;
            });
            for(i = 0; i < arrayOneCount; i+=1){
                alert(arrayTest[0][i]);
            }
    }

但是当第二次尝试“处理”时,我收到了错误;

SCRIPT5007: Unable to set property '0' of undefined or null reference 

在线的;

arrayTest[arrayOneCount][totalHouseholds] = HHName;
4

2 回答 2

1

你需要初始化你的数组。我不确定你到底想做什么,但你需要一个这样的数组

var arrayTest = []

您将需要初始化后续值,例如

arrayTest[1] = []

然后你可以访问你的数组

arrayTest[1][0] = []

我为你做了一个例子

var oneClickReport = $("#reportName").val();
var arrayTest = [] # You may need to put this elsewhere
if(oneClickReport == "Sample Report One"){
    var arrayOneCount = reportOneArray.length;
    var totalHouseholds = 0;
        $("#reportChecks span:visible").each(function(){            
            if($(this).find(':checkbox').prop('checked')){
                var HHName = $(this).text();
                reportOneArray.push(HHName);

                if(!arrayTest[arrayOneCount]){ arrayTest[arrayOneCount] = []; }

                arrayTest[arrayOneCount][totalHouseholds] = HHName;
            }
        totalHouseholds += 1;
        });
        for(i = 0; i < arrayOneCount; i+=1){
            alert(arrayTest[0][i]);
        }
}
于 2013-10-22T19:00:52.520 回答
0

你的问题,var arrayOneCount = reportOneArray.length;你没有改变这个值

于 2013-10-22T18:52:42.893 回答