roger: auf background-color zugreifen

Hello

die Hintergrundfarbe hat das CSS Attribut/Name "background-color".

Wenn ich darauf zugreifen will, funktioniert es leider bei mir so nicht.

document.getElementById('idname').style.background-color

mit jeder anderen CSS Eigenschaft funktioniert es. Nur nicht mit "Hintergrundfarbe".
Gibt es hier eine andere schreibweise ??

Gruß
       roger

  1. Hallo roger,

    document.getElementById('idname').style.background-color
    Gibt es hier eine andere schreibweise ??

    Ja, die lautet
    document.getElementById('idname').style.backgroundColor

    Nach dem selben Schema funktioniert das immer, wenn ein Bindestrich vorkommt.

    Liebe Grüße

  2. @@roger:

    die Hintergrundfarbe hat das CSS Attribut/Name "background-color". […]
    document.getElementById('idname').style.background-color

    Das liegt an dem bösen[tm] Zeichen '-' U+002D, das als Hu^WMädchen für alles herhalten muss: als Bindestrich, als Gedankenstrich, als Minus-Zeichen, ...

    In den CSS-Eigenschaften wird es als Bindestrich benutzt, in JavaScript als Minus-Zeichen. Und du willst ja nicht vom Wert document.getElementById('idname').style.background den Wert color subtrahieren.

    mit jeder anderen CSS Eigenschaft funktioniert es.

    Was heißt „funktioniert es“? Du kannst über das 'style'-Object nur auf die CSS-Eigenschaften zugreifen, die du per JavaScript gesetzt hast (oder die inline mit 'style'-Attributen gesetzt sind, aber das ist böse pfui[tm]!!).

    Folgendes gibt nicht "yellow" zurück:

    <!DOCTYPE html  
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"  
    
    >  
    
    <html  
     xmlns="http://www.w3.org/1999/xhtml"  
     xml:lang="und" lang="und"  
    
    >  
    
     <head>  
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
      <title>TEST</title>  
      <script type="text/javascript">  
       //<![CDATA[  
    [code lang=javascript]window.onload = function ()  
    {  
     document.body.style.background);  
    };  
    
    ~~~   //]]>  
      </script>  
      <style type="text/css">  
    ~~~css
    body  
    {  
     background: yellow;  
    }  
    
    ~~~  </style>  
     </head>  
     <body>  
     </body>  
    </html>  
    [/code]  
    Live long and prosper,  
    Gunnar
    
    -- 
    [Erwebsregel](http://memory-alpha.org/de/wiki/Erwerbsregeln_der_Ferengi) 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
    
    1. @@Gunnar Bittersmann:

      Folgendes gibt nicht "yellow" zurück:

      Sondern einen Fehler:

      document.body.style.background);

      Sollte heißen:

      alert(document.body.style.background);

      Live long and prosper,
      Gunnar

      --
      Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.