@twoj_mistrz_zxc:
Domyślam się, że po całym kodzie HTML masz porozsiewane miliony ID. Pewnie niełatwo to ogarnąć w skryptach, no i sam kod HTML robi się rozlazły. Zapewne prosto w kod HTML powstawiałeś również obsługę zdarzeń onmouseover i onmouseout, co jeszcze pogarsza sytuację.
Chciałbym Ci pokazać alternatywne rozwiązanie. Celowo użyłem w nim tylko bardzo podstawowych technik; normalnie napisałbym to inaczej (prawdopodobnie dodawałbym dynamicznie do wiersza klasę hover, ale by to zrobić porządnie trzeba wprowadzić trochę wyrażeń regularnych). W przykładzie chcę pokazać, że nie trzeba zawsze polegać na ID, gdy chce się dostać do jakiegoś elementu. ID jest dobrym punktem zaczepienia. Warto oznaczyć nim np. całą tabelę. Ale poszczególne wiersze -- po co?
Zobacz, w moim przykładzie wystarczy taki kod HTML:
<table id="moja_tabela">
<tr>
<td>Obraz</td>
<td>Dane</td>
<td>Dane</td>
<td>Dane</td>
<td>Dane</td>
</tr>
<tr>
<td>Obraz</td>
<td>Dane</td>
<td>Dane</td>
<td>Dane</td>
<td>Dane</td>
</tr>
</table>
Dosłownie taki. Bez onmouseover/out, bez id w każdej komórce i wierszu. I teraz taki skrypt (powinien być umieszczony w zewnętrznym pliku .js i dołączony gdzieś na dole strony, przed </body>):
function zrob_podswietlanie_tabeli(idTabeli) {
var tabela = document.getElementById(idTabeli);
if (tabela) {
var wiersze = tabela.rows;
for (var i = 0, n = wiersze.length; i < n; i++) {
var wiersz = wiersze[i];
wiersz.onmouseover = function() {
ustawKolorKomórekWiersza(this, '#E2D6D5');
};
wiersz.onmouseout = function() {
ustawKolorKomórekWiersza(this, '#EAAACF', '#F2A1E2');
};
}
}
function ustawKolorKomórekWiersza(wiersz, kolorNieparzystych, kolorParzystych) {
if (typeof kolorParzystych === 'undefined') {
kolorParzystych = kolorNieparzystych;
}
var komorki = wiersz.cells;
for (var i = 0, n = komorki.length; i < n; i++) {
komorki[i].style.backgroundColor = (i % 2 === 0)
? kolorNieparzystych
: kolorParzystych;
}
};
}
zrob_podswietlanie_tabeli('moja_tabela');
W kodzie nie ma wstawionych magicznych liczb oznaczających np. wymiary tabeli -- liczba kolumn i wierszy może być dowolna.
Chciałem Ci dać od razu kod działający jak ten, co wstawiłeś powyżej, więc parę rzeczy może być w nim mało sensownych, bo albo u Ciebie są mało sensowne, albo po prostu czegoś nie wydedukowałem (bo też nie zamieściłeś całego kodu -- nie ma np. onmouseover/out). Np. trochę dziwna wydaje mi się sprawa z funkcją powrot, która u Ciebie daje różne kolory wierszom. Tymczasem jeśli funkcja ma przywrócić poprzedni kolor komórek wiersza, ustawiony np. za pomocą CSS, to można to zrobić inaczej, prościej.