bastold: Alle Eigenschaften eines objects in einem Array?

Hallo!

Ich verzweifle grad daran, dass ich ein Element in einer CSS-Datei mit Eigenschaften belegt habe, aber diese nicht peralert() auslesen kann.

Bsp.:

  
.tooltip {  
	background-color: #ffffff;  
	display: block;  
	border: 1px solid #cccccc;	  
}  

Im HTML ist Tooltip als DIV wie folgt angelegt: <div id="tooltip" class="tooltip">Hilfetext</div>

Versuche ich jetzt ein [code lang=javascript]alert(document.getElementById("tooltip").style.display)[/code] erhalte ich "undefined" oder auch "" zurück.

Da kam mir die Frage, ob ich mir irgendwie, wie bsp. bei PHP mit print_r($array) alle Eigenschaften eines Elementes anzeigen lassen kann. Habe mich auch schon per Firebug probiert, aber da nichts gefunden.

Sicher gibt es einen Weg, nach was muss ich googlen?

Vielen Dank!

  1. .style liefert nur die inline-Styles zurück - CSS-style-Angaben muss man je nach Browser mit der currentStyle-Eigenschaft bzw. getComputedStyle-Methode herausfinden. Google sollte Dir genug Beispiele liefern.

    Gruß, LX

    --
    RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine ganz wunderbar. (...)
    1. @@LX:

      nuqneH

      .style liefert nur die inline-Styles zurück - CSS-style-Angaben muss man je nach Browser mit der currentStyle-Eigenschaft bzw. getComputedStyle-Methode herausfinden. Google sollte Dir genug Beispiele liefern.

      molily auch.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
  2. Hallo,

    schau dir mal http://molily.de/js/css.html#werte-auslesen an.

    Wenn du den Wert von einzelnen bekannten Eigenschaften abfragen willst, so geht das einfach. Wenn du alle willst, ist es schwieriger.

    Das Objekt, dass du von getComputedStyle bzw. currentStyle bekommst, kannst du wie einen Array durchlaufen. Darin sind erst einmal *sämtliche* unterstützten CSS-Eigenschaften, nicht die, die du in einer gewissen Regel in einem gewissen Stylesheet gesetzt hast. Für jede Eigenschaft kannst du dir den aktuellen Wert holen:

    var style = getComputedStyle(document.body, null);  
    for (var i = 0, l; i < l; i++) {  
      var prop = style[i];  
      var value = style.getPropertyValue(prop);  
      console.log(prop, value);  
    }
    

    (Das ist jetzt der standardkonforme Code. In älteren IEs kann man currentStyle mit einer for-in-Schleife durchlaufen.)

    Das sind im Webkit über 220 Eigenschaften/Werte. Was willst du damit anfangen? ;) Vielleicht erzählst du mal, was du genau vorhast, vielleicht kann man dir dann eine Alternative aufzeigen.

    Mathias