Posted: 09.11.2004 09:27 Post subject: javascript - farbanje svakog drugog reda
Neletih na www.allistapart.com -u na odličan članak iz kojeg sam izvukao slijedeću skriptu:
Code:
// this function is needed to work around
// a bug in IE related to element attributes
function hasClass(obj) {
var result = false;
if (obj.getAttributeNode("class") != null) {
result = obj.getAttributeNode("class").value;
}
return result;
}
function stripe(id) {
// the flag we'll use to keep track of
// whether the current row is odd or even
var even = false;
// if arguments are provided to specify the colours
// of the even & odd rows, then use the them;
// otherwise use the following defaults:
var evenColor = arguments[1] ? arguments[1] : "#555";
var oddColor = arguments[2] ? arguments[2] : "#444";
// obtain a reference to the desired table
// if no such table exists, abort
var table = document.getElementById(id);
if (! table) { return; }
// by definition, tables can have more than one tbody
// element, so we'll have to get the list of child
// <tbody>s
var tbodies = table.getElementsByTagName("tbody");
// and iterate through them...
for (var h = 0; h < tbodies.length; h++) {
// find all the <tr> elements...
var trs = tbodies[h].getElementsByTagName("tr");
// ... and iterate through them
for (var i = 0; i < trs.length; i++) {
// avoid rows that have a class attribute
// or backgroundColor style
if (! hasClass(trs[i]) &&
! trs[i].style.backgroundColor) {
// get all the cells in this row...
var tds = trs[i].getElementsByTagName("td");
// and iterate through them...
for (var j = 0; j < tds.length; j++) {
var mytd = tds[j];
// avoid cells that have a class attribute
// or backgroundColor style
if (! hasClass(mytd) &&
! mytd.style.backgroundColor) {
mytd.style.backgroundColor =
even ? evenColor : oddColor;
}
}
}
postavim skriptu u body onload i pošaljem joj id tablice i naravno sve radi kako spada. U čemu je cath pitate se?
Ja bih želio da ta skripta radi za bilo koju tablicu sa postavljenom određenom klasom, a ne određenim id-om (pošto može biti samo jedan element s dotičnim id-om na stranici).
Problem je koliko sam ja shvatio u
Code:
var table = document.getElementById(id);
pokušao sam iskoristiti neke napravljenje funkcije getElementByClass, no one vraćaju niz umjesto određenog elementa (ne znam da li se pravilno izražavam nisam se nikad bavio javascriptom).
Probao sam i napraviti pelju koja će slati svaki element tog niza, no stvar ne radi jer se ja u to baš i ne kužim...
Ako ima neka dobra duša koja bi mi pomogla bio bih jako zahvalan...
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum