Variable erhält keinen Wert

Freak_Desperado

Erfahrenes Mitglied
Hallo!
Ich sehe mal wieder meinen Fehler nicht...


Bei folgendem Code ist in der Variable posY kein Wert.
Warum bzw. warum nicht?
Code:
myObj = document.getElementById("myDiv").style;
posY = myObj.top;
Oder geht das so rum gar nicht? Wär ja auch irgendwie doof...
 
Probier das mal so:
Javascript:
alert(document.getElementById("myDiv").style.top);

Tobee

// edit

Mir ist aufgefallen wenn ich
HTML:
style=""
ansprechen möchte. Muss z.B. der top definiert sein.

Geht nicht:
HTML:
<div id="myDiv"></div>
<script language="javaScript">
alert(document.getElementById("myDiv").style.top);
</script>

Geht:
HTML:
<div id="myDiv" style="top:50px;"></div>
<script language="javaScript">
alert(document.getElementById("myDiv").style.top);
</script>

Tobee
 
Ich will und kann mich nicht festlegen. Aber schreib mal zum testen den top Wert
in einen ...style=""... tag rein und teste es nochmal.

Tobee
 
Jetzt geht's auf einmal! *freu*

Besten Dank für den Tipp!


Ich war schon am Verzweifeln und dann liegt's an solch einer "dummen" Kleinigkeit.
Ich frage mich nur, warum die Werte aus der Klasse nicht übernommen werden...
 
Das regt mich auch auf. D.h. wenn man was dynamisches machen möchte
kann man das vergessen den style in einer Klasse zu definieren.
Mich würde interessieren ob das am IE liegt.

Tobee
 
Der IE ist diesmal nicht alleinig Schuld... JS kann auf diese Art halt nur styles ermiteln, welche entweder inline im Element notiert sind, oder per JS gesetzt wurden.

Hat mich auch schon oft geärgert :(
 
Hi,

es gibt eine Möglichkeit, die Styles auszulesen - über die Methoden getComputedStyle und currentStyle:
Code:
//  Array mit den CSS-Eigenschaften
arrCSS["background"]            = "background";	          // Hintergrunddefinition
arrCSS["background-attachment"] = "backgroundAttachment"; // Hintergrundbild
arrCSS["background-color"]      = "backgroundColor";      // Hintergrundfarbe
//  ... usw.

function readStyles(strID, strCSS){
  var strFarbe;

  //  Falls CSS-Eigenschaft nicht existiert -> Funktion verlassen
  if(arrCSS[strCSS] == null) return;

  //  Falls der Brower die Methode "getComputetStyle" kennt (W3C-DOM)
  if(window.getComputedStyle){
    strFarbe = window.getComputedStyle(document.getElementById(strID), null).getPropertyValue(strCSS);
  }

  //  Falls der Browser die Methode "currentStyle" kennt (neuere IEs)
  else if(document.getElementById(strID).currentStyle){
    strFarbe = document.getElementById(strID).currentStyle[arrCSS[strCSS]];
  }

  alert(strFarbe);
}
Den Array mit den gängigsten CSS-Eigenschaften findest Du hier.

Die Funktion erwartet als ersten Parameter die ID des Elementes, dessen CSS-Eigenschaften
ausgelesen werden sollen. Im zweiten Parameter wird die CSS-Eigenschaft übergeben (entsprechend
dem assoziativen Index im CSS-Array).

Ciao
Quaese
 

Neue Beiträge

Zurück