Camping_RIDER: setInterval

Beitrag lesen

Aloha ;)

Eine kleine letzte Frage hätte ich jedoch noch ;) ist es möglich einen Verweis in einer Variable zu speichern?

also...

variable = document.getElementById(id).style.height;

um sie dann später in kurzschrift zu verwenden

variable = 100px;

Du suchst nach einer Möglichkeit, in JavaScript Referenzen statt Werten in Variablen zu speichern.

Grundsätzlich verhält sich JavaScript so:

Wenn eine Variable mit einem Objekt (auch Arrays sind übrigens Objekte) belegt wird, wird eine Referenz gespeichert.

variable = document.getElementById(id).style;  
variable.height = 100px;  
alert(document.getElementById(id).style.height); \\ 100px  

Wenn eine Variable mit einem simplen Datentyp belegt wird, wird nur der Wert gespeichert.

variable = document.getElementById(id).style.height;  
variable = 100px;  
alert(document.getElementById(id).style.height); \\ nicht 100px, aber Leerstring oder defaultwert  

Simple Datentypen in diesem Sinne sind Zahlen, Strings und booleans.

Man kann grundsätzlich, wenn das gewünscht ist, simple Datentypen in Objekten wrappen, um das gewünschte Verhalten zu erreichen (in deinem Fall ist das nicht hilfreich). Etwa so:

// declare an object with property x  
var obj = { x: 1 };  
var anotherObj = obj;  
anotherObj.x++;  
alert(obj.x); // displays 2

(nicht auf meinem eigenen Mist gewachsen, [Quelle])

In deinem Fall würde es sich aber dann anbieten, einfach wie in meinem ersten Beispiel das übergeordnete Objekt abzuspeichern. Wenn es ganz schnell gehen soll, kann das ganze dann noch so abgekürzt werden:

v = document.getElementById(id).style;  
h = 'height';  
v[h] = 100px;  
alert(document.getElementById(id).style.height); \\ 100px  

Eine Möglichkeit, JavaScript zu zwingen, Referenzen abzuspeichern (wie in PHP mit dem =&-Operator) gibt es imho nicht.

Grüße,

RIDER

--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[