我想传递一个数组,我已经保存为var。我在父函数中声明var,并在父函数中添加arr作为参数。然后,我将arr作为回调调用中的参数。 控制台告诉我linksA是未定义的。从函数传递变量作为参数
var supportLists = function(selector, arr) {
var parentList = document.getElementById(selector);
var theList = parentList.querySelectorAll("a");
var linksA = [
"http://www.example.com",
"http://www.example.com/path2",
"1",
"2",
"4",
"3",
"5",
"6",
"7"
];
var linksB = [
"1",
"2",
"3"
];
var linksC = [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12"
];
var linksD = [
"1",
"2"
];
var linksE = [
"1",
"2",
"3"
];
var linksF = [
"1",
"2",
"3",
"4",
"5",
"6"
];
var linksG = [
"1",
"2",
"3"
];
var linksH = [
"1",
"2",
"3",
"4"
];
var linksI = [
"1"
];
var linksJ = [
"1",
"2",
"3",
"4",
"5"
];
function processLi(listItems, links) {
for (var i = 0; i < links.length; i++) {
listItems.forEach(function(item, index) {
item.href = links[index];
item.target = "_blank";
});
}
}
processLi(theList, arr);
};
supportLists("support-list", linksA);
supportLists("support-list-b", linksB);
supportLists("support-list-c", linksC);
supportLists("support-list-d", linksD);
supportLists("support-list-e", linksE);
supportLists("support-list-f", linksF);
supportLists("support-list-g", linksG);
supportLists("support-list-h", linksH);
supportLists("support-list-i", linksI);
supportLists("support-list-j", linksJ);
您试图在声明它们的函数外部使用那些'links'变量。 – 2016-09-15 17:13:43
添加@squint答案,你可以声明数组在相同的范围上,函数将被调用并将它们作为参数传递给函数,或者传递链接数组的名称作为输入参数函数并在其中有一个逻辑来选择和使用正确的数组。 – GCSDC
如果我将它们放入processLi函数中,会得到相同的错误。 除此之外,我不是在调用中使用它们,而是坐在父函数内部,而不是回调? – ardev