Don Philippo: <TD> Highlighten geht nicht - Was ist falsch`?

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>

  1. 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???

    • Du hast die </faq/> nicht gelesen/beachtet
    • Du hast keine Angaben zu deinem Problem gemacht
    • Du hast eine Fehlerhafte Tastatur (die ?-Taste hat ein Problem)

    <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

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
  2. 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

  3. 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

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|