Autor |
Nachricht |
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Sa 08.12.2012 14:40
Titel Tabelle enthält Farbcode, zu sehen sein soll farbiges Feld |
|
|
Eine scrollbare Tabelle (DIV-Konstrukt) enthält in einer Zelle Farbcodes in HTML-Schreibweise, z.B. '#ff00ff', diese stammen aus einer Datenbank. Sichtbar werden soll aber nicht dieser Code als Text, sondern eine farbige Fläche in genau dem Ton.
Nun hat eine Tabellen-Zelle keinen "onload" oder "onview"-Event, so dass ich während des Aufbauens auf dem Bildschirm hier z.B. Zellenhintergrund und Zellenschrift in die selbe Farbe bringen könnte, oder? Bitte Tips.
Ich habe schon einen 'langen" weg gefunden, finde den aber momentan zu umständlich. Da die Daten aus einer Datenbank stammen, könnte ich, bevor ich per PHP den Tabellecode zusammensetze, die Informationen entsprechend verarbeiten und gleich die Tabelle so hinschreiben. Lieber wäre mir aber eine clientseitige Live-Variante per "Intelligenter" Tabelle ... geht das?
|
|
|
|
|
easteregg
Dabei seit: 15.02.2003
Ort: Deutschland
Alter: 36
Geschlecht:
|
Verfasst Sa 08.12.2012 15:39
Titel
|
|
|
Müsste doch eigentlich gehen wenn du style.backgroundColor dem innerHTML gleichsetzt.
Poste mal deinen Code, der nicht klappt.
|
|
|
|
|
Anzeige
|
|
|
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Sa 08.12.2012 16:58
Titel
|
|
|
Zitat: | Poste mal deinen Code, der nicht klappt. |
Ich habe noch keinen Code, der nicht klappt. Das oben war nur ein Beipiel für Vorab-Überlegungen. Wie man den Hintergrund eines Tabellenfeldes setzt ist ansich nicht das Problem. Mit fehlt der passende Event ('onview' - gibts nicht) oder ich muss mich nach dem Anzeigen der Tabelle zeilenweise durcharbeiten und die Felder nachträglich setzen ... habe da jetzt 'was gefunden, worauf ich evtl. aufbauen kann:
rowCount = document.getElementById('myTableID').rows.length
und
document.getElementById(tableId).getElementsByTagName("tbody")[X].getElementsByTagName("tr").getElementsByTagName("td") ...
Liefert mir die Anzahl der Zeilen und eine Zelle in der Zeile, die gehe ich in einer Schleife entlang und werde mal nach dem Feld mit dem Farbcode parsen und dann per "GetElementById" irgendwie ... mal sehen.
Zuletzt bearbeitet von qualidat am Sa 08.12.2012 16:59, insgesamt 1-mal bearbeitet
|
|
|
|
|
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Sa 08.12.2012 17:23
Titel
|
|
|
Code: |
tab=document.getElementById('tr000').getElementsByTagName("tbody")[0];
row=tab.getElementsByTagName("tr")[0];
cell=row.getElementsByTagName('td')[0];
alert(cell.innerHTML);
|
Mit diesem Code komme ich an den Zelleninhalt, sowohl lesend als auch (so hoffe ich) den style (und damit die Farbe) setzend ... cell.style.backgroundColor="'"+cell.innerHTML+"'" ... mal sehen ...
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
|
|
|
|
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Sa 08.12.2012 18:00
Titel Gelöst! |
|
|
Habs!
Code: |
function setcolor(table_id,column_nr)
{
tab=document.getElementById(table_id).getElementsByTagName("tbody")[0];
for (i=0; i<tab.rows.length; i++)
{
row=tab.getElementsByTagName("tr")[i];
cell=row.getElementsByTagName('td')[column_nr];
code=cell.innerHTML;
cell.style.backgroundColor=code;
cell.style.color=code;
}
}
|
Dürfte ziemlich universell sein ...
Zuletzt bearbeitet von qualidat am Sa 08.12.2012 18:01, insgesamt 2-mal bearbeitet
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Sa 08.12.2012 21:28
Titel
|
|
|
achso. ich dachte die zellen sollen eingefärbt werden, sobald sie im sichtbaren bereich liegen. in diesem fall hier mein (etwas optimierter) ansatz ohne jquery und gedöns: http://jsfiddle.net/Jwu37/5/
Zuletzt bearbeitet von sahnemuh am Sa 08.12.2012 21:28, insgesamt 1-mal bearbeitet
|
|
|
|
|
Karlarsch
Dabei seit: 05.02.2007
Ort: -
Alter: 58
Geschlecht:
|
Verfasst So 09.12.2012 12:13
Titel
|
|
|
Also mit jQuery finde ich es "etwas" einfacher ... und übersichtlicher:
Code: | $('td').each(function() {
var colr = $(this).text()
$(this).css('background-color',colr).css('color',colr);
}); |
Gruß
Karl
|
|
|
|
|
|
|
|
Ähnliche Themen |
RGB HEX-Farbcode
Illustrator - SVG enthält die Grafikstile nicht
CSS: <div>-Container enthält jpg, stretching und verkleinern
Höhe aus Tabelle auslesen und in andere Tabelle einfügen
Bild das nur text enthält in Kurven umwandeln. geht das.
2-farbiges Logo in Photoshop (HKS Farben)
|
|