Bastian T.: Schriftfarbe in Tabelle verändern

Hi.

Ich würde gerne per JS die Schriftfarbe in einer Tabellenzelle ändern. Die Zelle hat eine eindeutige id und die von mir erdachte Code-Zeile lautet

document.all.getElementById(id).currentStyle.color = "#FF0000";

Aber irgendwie bekomme ich immer nur die Fehler-Meldung "Objekt unterstützt Methode nicht."

Why?

Sanfte Grüße
Bastian

  1. Hallo,

    das jacascript:

    <script language="JavaScript" type="text/JavaScript">
    <!--
     var undefined;
     function mover(obj, color) {
      if (color == undefined) obj.style.backgroundColor='#838383';
      else     obj.style.backgroundColor=color;
     }

    function mout(obj, color) {
      if (color == undefined) obj.style.backgroundColor='#a0a0a0';
      else     obj.style.backgroundColor=color;
     }
    //-->
    </script>

    Die Zelle:

    <td height="14"
    onMouseOver="mover(this)"
    onMouseOut="mout(this)"
    onMouseUp="window.location.href='#'"
    bgcolor="#A0A0A0">

    ############################################################

    Oder mit CSS:

    das css:

    <style type="text/css">
    <!--

    td.deineID
    {
    background-color: #666666;
    }
    -->
    </style>

    Die Zelle:

    <td id="deineID">bla</td>

    ############################################################
    Gruß Tom

    1. Tach nochmal,

      tschuldi, aber ich steig nicht so richtig hinter dein Skript.

      function mover(obj, color) {
        if (color == undefined) obj.style.backgroundColor='#838383';
        else     obj.style.backgroundColor=color;
       }

      So, wie ich das verstehe, veränderst du die Hintergrundfarbe, des Objektes (this). Ich möchte aber die Schriftfarbe in der Zelle ändern.

      Soll irgendwie so aus sehen:
      function linkin(obj,target) {
      obj.style.color = "#FF0000";
      window.parent.frames[1].location.href = target;
      }

      Funktionsaufruf:
      <td id="link_h1"><a href="javascript:linkin(this,'home1.htm')">Willkommen</a></td>

      Vielleicht noch ein bißchen was zum Sinn des ganzen:
      Ich will in dem Menü dem Benutzer zeigen wo er sich gerade befindet und deswegen, soll der Link solange rot sein, bis ein anderer aufgerufen wird. Danach soll er wieder schwarz sein, geht also nicht mit link:visited. Bin aber für Alternativen dankbar.

      bdt
      Bastian

  2. Hallo Bastian,

    vergiss das Javascript. Ich hab mich verlesen sorry...

    in den CSS Style einfach color: #farbe;

    Tom

  3. Hallo,

    document.all.getElementById(id).currentStyle.color = "#FF0000";

    Aber irgendwie bekomme ich immer nur die Fehler-Meldung "Objekt unterstützt Methode nicht."

    Why?

    1. document.all oder document.getElementById(), letzteres ab IE 5.0 verfuegbar
    2. currentStyle ist eine read-only-Eigenschaft des IE
    3. so gates (sofern id ein Funktionsargument ist, ansonsten die konkrete ID in "..." oder '...' verpacken):
    document.getElementById(id).style.color = "#FF0000";

    MfG, Thomas

    1. Mahlzeit! (Sch* Gruß meiner Meinung nach!)

      1. so gates (sofern id ein Funktionsargument ist, ansonsten die konkrete ID in "..." oder '...' verpacken):
        document.getElementById(id).style.color = "#FF0000";

      1. Selbstverständlich ist id ein Funktionsargument.
      2. bekomme jetzt die Fehlermeldung: style ist kein Objekt oder Null.

      Häh?????

      bdt
      Bastian

      1. Hallo,

        1. Selbstverständlich ist id ein Funktionsargument.

        Nach Deinem Konstrukt document.all.getElementById() ist das nicht selbstverstandlich ;-).

        1. bekomme jetzt die Fehlermeldung: style ist kein Objekt oder Null.

        Zeige weitere relevante Teile von Script und Markup.

        MfG, Thomas

        1. Hi.

          Nach Deinem Konstrukt document.all.getElementById() ist das nicht selbstverstandlich ;-).

          Punkt für dich.

          Zeige weitere relevante Teile von Script und Markup.

          function linkin(id,target) {
          document.getElementById(id).style.color = "#FF0000";
          window.parent.frames[1].location.href = target;
          }

          Funktionsaufruf:
          <td id="link_h1"><a href="javascript:linkin(this,'home1.htm')">Willkommen</a></td>

          Vielleicht noch ein bißchen was zum Sinn des ganzen:
          Ich will in dem Menü dem Benutzer zeigen wo er sich gerade befindet und deswegen, soll der Link solange rot sein, bis ein anderer aufgerufen wird. Danach soll er wieder schwarz sein, geht also nicht mit link:visited. Bin aber für Alternativen dankbar.

          bdt
          Bastian

          1. Hallo,

            Funktionsaufruf:
            <td id="link_h1"><a href="javascript:linkin(this,'home1.htm')">Willkommen</a></td>

            Du meinst aber this.parentNode.id und die Referenz auf this steht nicht im href-Attribut zur Verfuegung.

            Versuche es so mit onclick:

            <td id="link_h1"><a href="home1.htm" onclick="linkin(this.parentNode.id,'home1.htm');return false">Willkommen</a></td>

            MfG, Thomas

            1. [Nachtrag:]

              Du meinst aber this.parentNode.id und die Referenz auf this steht nicht im href-Attribut zur Verfuegung.

              Um genau zu sein:

              Das vom Fragesteller gesetzte this bezog sich auf den href-Attribut-Knoten. Der von mir verwendete this-Kontext bezieht sich auf den a-Element-Knoten und td ist von dort aus gesehen parentNode.

              MfG, Thomas