Witam,
Przytrafił mi się problem, którego nie potrafię rozkminić dlaczego , a tym bardziej rozwiązać. W funkcji deklaruję sobie zmienną i . Wykorzystywana jest ona w pierwszej pętli for. W drugiej pętli for korzystam ze zmiennej k. W tej drugiej pętli, gdy staram się wyświetlić wartość zmiennej i poprzez alert(i) pokazuje mi prawidłową wartość. Problem pojawia się, gdy iteruję poprzez tą wartość tablicę. To pokazuje mi się następujący błąd:
tab[i] is undefined
[Break on this error] tab[i][k] = myTdTable[k].innerHTML;
Moja funkcja - problem w 22 linijce kodu :
function stripes() {
var i = 0;
myTable = document.getElementById("large");
myTrTable = myTable.getElementsByTagName("tr");
for (i=0; i <myTrTable.length; i++){
if(i == 0){
myThTable = myTrTable[i].getElementsByTagName("th");
for (var j=0; j <myThTable.length; j++){
//alert("Th " +myThTable[j].innerHTML);
tab[0][j] = myThTable[j].innerHTML;
}
}
else {
myTdTable = myTrTable[i].getElementsByTagName("td");
for (var k=0; k <myTdTable.length; k++){
//alert("Td "+myTdTable[k].innerHTML);
alert(i);
tab[i][k] = myTdTable[k].innerHTML;
}
}
}
}
EDIT:
Już poradziłem sobie, źle zdefinowałem tablice. Docelowo funkcja powinna wyglądać tak:
function stripes() {
var i = 0;
myTable = document.getElementById("large");
myTrTable = myTable.getElementsByTagName("tr");
for (i=0; i <myTrTable.length; i++){
if(i == 0){
myThTable = myTrTable[i].getElementsByTagName("th");
for (var j=0; j <myThTable.length; j++){
//alert("Th " +myThTable[j].innerHTML);
tab[0][j] = myThTable[j].innerHTML;
}
}
else {
myTdTable = myTrTable[i].getElementsByTagName("td");
for (var k=0; k <myTdTable.length; k++){
//alert("Td "+myTdTable[k].innerHTML);
alert(i);
tab[i][k] = myTdTable[k].innerHTML;
}
}
}
Ten post edytował piotrekww 24.10.2010, 13:48:31