Christian Seiler: (CSS)(JAVA) Einge Fragen (Gitternetzlinien, Highlights)

Beitrag lesen

Hallo,

  1. Ist es möglich über JAVA eine function zu definieren, die (ähnlich wie bei 2 Frameveränderungen) bei onMouseOver 2 verschiedene Highlights in unterschiedlichen Tabellenzellen gleichzeitig verändert bzw. alternativ ein Highlight verändert und gleichzeitig in einer anderen td über DHTML einen Text einblendet? (Hoffe die Frage ist verständlich formuliert)

Was meinst Du mit "highlight"?

Von der aktuellen Tabellenzelle kannst Du die Eigenschaften über das this-Objekt im Eventhandler ändern, beispielsweise:

<td onmouseover="this.className = 'zelle_hover';" onmouseout="this.classname = 'zelle';">

Wenn Du zusätzlich eine andere Zelle ansprechen willst, dann musst Du wissen, wie Du sie erreichen kannst. Beispielsweise kannst Du bei

<table id="meinetabelle">
<tr><td>1</td><td>2</td></tr>
<tr><td>3</td><td>4</td></tr>
<tr><td>5</td><td>6</td></tr>
</table>

die Zelle mit dem Inhalt '5' über

var meinezelle = document.getElementById('meinetabelle').getElementsByTagName('tr')[2].getElementsByTagName('td')[0];

erreichen und ihr zum Beispiel mit

meinezelle.style.backgroundColor = '#ccc';

eine andere Hintergrundfarbe zuweisen.

Wenn Du einen Text in eine Zelle 'einblenden' willst, dann kannst Du das direkt über DOM machen. DIe Zelle muss einen Textknoten enthalten.

meinezelle.firstChild.nodeValue = 'neuertext';

firstChild ist der erste Kindknoten, hier also ein Textknoten. (die Zelle muss dann aber über <td> </td>, <td>text</td> o.ä. definiert sein, <td></td> geht *nicht*, weil Du dann den Textknoten erst anlegen müsstest)

Falls Du auch HTML verwenden willst, gibt es die von Microsoft erfundene innerHTML-Eigenschaft, die inzwischen von mehreren Browsern unterstützt wird:

meinezelle.innerHTML = 'blabla<br>blablub';

innerHTML funktioniert, egal, was bereits in der Zelle enthlaten ist, ist aber nicht standardisiert und Opera kann es erst ab 7.

Viele Grüße,
Christian