<TD> Highlighten geht nicht - Was ist falsch`?
Don Philippo
- html
Ich habe folgenden Code gecodet aber er funktioniert nicht, was mache ich falsch???
<html>
<head>
<title>Zellen highlighten</title>
<script language="JavaScript">
<!--
function highlight(ID,Farbe1,Farbe2) {
document.getElementsById(ID).bgColor = Farbe1;
document.getElementsById(ID).bgColor = Farbe2;
}
//-->
</script>
</head>
<body onLoad="highlight()">
<table border="1">
<tr>
<td id="1" bgcolor="#ffffff" onMouseOver="highlight(1,#ffffff,#e1e1e1)">Punkt 1</td>
<td id="2" bgcolor="#ffffff">Punkt 2</td>
</tr>
</table>
</body>
</html>
Hallo
funktioniert nicht
"Funktioniert nicht" funktioniert nicht. Was meinst du mit jenem Ausdruck?
Was erhälst du für Fehlermeldungen, welche Debug-Ansätze hast du mit
welchem Ergebnis durchgeführt?
was mache ich falsch???
<script language="JavaScript">
Hier fehlt die type-Angabe
function highlight(ID,Farbe1,Farbe2) {
<body onLoad="highlight()">
Hier gibst du der Funktion keine Parameter mit auf den Weg.
<td id="1" bgcolor="#ffffff" onMouseOver="highlight(1,#ffffff,#e1e1e1)">Punkt 1</td>
1 ist keine gültige ID.
Verwende CSS.
Grüße
David
Hi,
so müsste es gehen:
[code start]
<html>
<head>
<title>Zellen highlighten</title>
<script language="JavaScript">
<!--
function highlight(ID,Farbe1) {
document.all[ID].bgColor = Farbe1;
}
//-->
</script>
</head>
<body>
<table border="1">
<tr>
<td id="a1" bgcolor="#ffffff" onMouseOut="highlight('a1','#ffffff')" onMouseOver="highlight('a1','#e1e1e1')">Punkt 1</td>
<td id="a2" bgcolor="#ffffff">Punkt 2</td>
</tr>
</table>
</body>
</html>
[code ende]
Erklärung:
Du brauchst ein MouseOut, um zum alten Farbzustand zurückzukehren.
Dementsprechend ist nur eine Farbangabe in der Funktion nötig.
Bitte für die ID min. 1 Buchstaben am Anfang.
Die onLoad-Angabe im body-Tag ist sinnlos.
Bitte beachten:
Ich habe document.all verwendet (da ich den IE5 habe). Bitte entsprechend in der Funktion ändern auf getElementByID.
Hope it helps.
Gruss
Torsten
Hallo Don(?), <- Begrüßung
<script language="JavaScript">
hier fehlt das type-Attribut.
document.getElementsById(ID).bgColor = Farbe1;
document.getElementsById(ID).bgColor = Farbe2;
- warum willst du dem gleichen Element zwei verschiedene Farben zuweisen?
- statt ....bgColor wäre ....style.backgroundColor schöner.
</script>
</head>
nichts gegen einrücken - aber muss das gleich so ewig weit sein?
<body onLoad="highlight()">
was soll dieses onload bewirken?
<td id="1" bgcolor="#ffffff" onMouseOver="highlight(1,#ffffff,#e1e1e1)">Punkt 1</td>
- id="1" ist ungültig: http://www.w3.org/TR/html401/types.html#type-name
- bgcolor ist deprecated - verwende css
- statt highlight(1,..) kannst du auch einfacher highlight(this.id,...) schreiben.
warum eigentlich so umständlich? mit:
td { background-color:#fff; }
td:hover { background-color:#E1E1E1; }
geht das doch viel einfacher (evtl. noch mit einer Klasse kombinieren) und ganz ohne js - die Sache hat nur einen Haken - der IE ist zu blöd dafür...
Grüße aus Nürnberg <- Verabschiedung
Tobias