// aceasta functie este necesara pentru evitarea unui bug // in IE, ce tine de atributele unui element; function hasClass(obj) { var result = false; if (obj.getAttributeNode("class") != null) { result = obj.getAttributeNode("class").value; } return result; } function stripe(id) { // vom folosi un flag (steag) pentru a marca // daca linia curenta este para sau impara; var even = false; // daca sunt prezentate argumente care specifica culoarea // lui par sau impar atunci le vom folosi; // altfel folosim valorile de baza: var evenColor = arguments[1] ? arguments[1] : "#fff"; var oddColor = arguments[2] ? arguments[2] : "#eee"; // obtinem o referinta la tabelul dorit // daca nu exista tabelul se abandoneaza; var table = document.getElementById(id); if (! table) { return; } // prin definitie, tabelele pot avea mai mult de un // element tbody, dei trebuie sa facem o lista cu ce avem var tbodies = table.getElementsByTagName("tbody"); for (var h = 0; h < tbodies.length; h++) { // gasim toate elementele <tr> var trs = tbodies[h].getElementsByTagName("tr"); for (var i = 0; i < trs.length; i++) { // evitam liniile care au o clasa atribuita // sau o culoare de fundal if (! hasClass(trs[i]) && ! trs[i].style.backgroundColor) { // luam toate celulele liniei... var tds = trs[i].getElementsByTagName("td"); for (var j = 0; j < tds.length; j++) { var mytd = tds[j]; // evitam celulele care au o clasa atribuita // sau o culoare de fundal if (! hasClass(mytd) && ! mytd.style.backgroundColor) { mytd.style.backgroundColor = even ? evenColor : oddColor; } } } // sarim de la par la impar sau invers; even = ! even; } } }