Sugarfree Posted August 21, 2007 Report Share Posted August 21, 2007 Vai kāds var palīdzēt tikt galā ar problēmu? Googlē sameklēju sev nepieciešamo Sort tables javascriptu, viss it kā ir kārtībā, bet ir vēl viena lieta. ;/ Gabals no javascript koda: function alternate(table) { // Take object table and get all it's tbodies. var tableBodies = table.getElementsByTagName("tbody"); // Loop through these tbodies for (var i = 0; i < tableBodies.length; i++) { // Take the tbody, and get all it's rows var tableRows = tableBodies[i].getElementsByTagName("tr"); // Loop through these rows // Start at 1 because we want to leave the heading row untouched for (var j = 0; j < tableRows.length; j++) { // Check if j is even, and apply classes for both possible results if ( (j % 2) == 0 ) { if ( !(tableRows[j].className.indexOf('odd') == -1) ) { tableRows[j].className = tableRows[j].className.replace('odd', 'even'); } else { if ( tableRows[j].className.indexOf('even') == -1 ) { tableRows[j].className += " even"; } } } else { if ( !(tableRows[j].className.indexOf('even') == -1) ) { tableRows[j].className = tableRows[j].className.replace('even', 'odd'); } else { if ( tableRows[j].className.indexOf('odd') == -1 ) { tableRows[j].className += " odd"; } CSS: table.sortable tr.odd td { background-color: #EDEBEF; } table.sortable tr.even td { background-color: #fff; } Līdz ar to es varu iekrāsot tabulas satura rindas divās krāsās... Jautājums sekojošs - kā var izdarīt tā, lai man iekš CSS būtu pieejamas 4 tr klases? Tas man ir vajadzīgs, lai varētu katram tr piešķirt kādu konkrētu krāsu. Bez tam, vai ir iespējams šīs te krāsas "nofiksēt vajadzīgā vietā"? Nu, piemēram, zaļā krāsā vienmēr iekrāsosies pirmās četras rindas, zilā - nākošās divas utt... es ceru, ka doma ir skaidrs ;/ Link to comment Share on other sites More sharing options...
Roze Posted August 21, 2007 Report Share Posted August 21, 2007 Javascriptam japieliek papildus funkcionalitāte/checkings ka "zaļā krāsā vienmēr iekrāsosies pirmās četras rindas, zilā - nākošās divas" šim tr tiek pieškirta cita klase.. Teiksim tavā gadijumā tā tīri teorētiski: if(j<4) { tableRows[j].className += " zaljaaklase"; } else if(j>3 && j < 6) { tableRows[j].className += " zilaaklase"; } Šādi IFu kombinācija protams ir diezgan nejēdzīgi sarakstīti, bet nu ideja skaidra tev ir 'j' mainīgais kas satur rindas numuru un pēc tā krāso kādu nu vien vēlies.. += vietā var lietot vienkārši = .. jo += apendo klasi taču tev abas klases overraido viena otru.. p.s. ja šis skripts tiek darbināts vienreiz tad vēl nekas, bet vispār krietni ātrāk ir mainīt tikai background atribūtu ( tableRows[j].style.backgroundColor = 'blue' ) ... Mainīt klasi ir diezgan lēni un dažos brīžos uz dažiem pārlūkiem iestājas diezgan liels lags (it īpaši var novērot ja pataisa onMouseOver eventus) Link to comment Share on other sites More sharing options...
Recommended Posts