функция, которую я написал ниже, содержит массивы aarr и barr для хранения вызовов DOM, чтобы уменьшить обход DOM.Это работает прямо сейчас, но я хочу повторно использовать эти массивы в других функциях, поэтому я попытался переместить объявление массива и цикл for за пределы функции, функция выдает ошибку при достижении первой ссылки на aarr [i], как если быфункция не распознается aarr [].Я понимаю, что "VAR" даст область, но я попытался удалить / в том числе VAR, и он все еще не работает.
Пожалуйста, объясните
TIA
Это работает, когда aarr [] объявлен внутри функции (отредактировано, чтобы включить закрывающий тег для цикла "for")
function display (namearr, current) {
var aarr = [];
var barr = [];
for (var z=1; z<=10; z++) {
c = z-1;
aarr[c] = document.getElementById("a"+z);
barr[c] = document.getElementById("b"+z);
}
var tldstr = document.getElementById("dlist").innerHTML;
tldstr = tldstr.slice(0, -1)
var tldarr = tldstr.split(",");
index = current - 1;
var arrlen = tldarr.length;
var img = "<img src='../loader1.gif' alt='loading' width='40' />";
for (i=0; i<10; i++){
if (index >= arrlen) {
aarr[i].className = "tldn";
barr[i].className = "tldn";
}
else if ( tldarr[index] == "n" || tldarr[index].length != 6)
{
aarr[i].innerHTML = img;
barr[i].innerHTML = img;
}//close first elseif
else {
tldstr = tldarr[index];
aarr[i].className = "tld"+tldstr.charAt(0);
barr[i].className = "tld"+tldstr.charAt(1);
}//close second elseif
index++;
}//close first for loop
}
Это не работает (с объявлением "var" или без него), ошибки функции при первом обращении к aarr [i]
var aarr = [];
var barr = [];
for (var z=1; z<=10; z++) {
c = z-1;
aarr[c] = document.getElementById("a"+z);
barr[c] = document.getElementById("b"+z);
function display (namearr, current) {
.
.
.
aarr[i].className = "tldn"; //function errors out at first encounter of aarr[i]
.
.
.
}