JavaScript Variablen und Zeichenkettenoperator

MarcDK

Banned
Registriert
Mai 2001
Beiträge
3.559
Ich möchte meinen Code in einer Funktion kapseln. Er ist sehr hässlich: http://www.marctv.de/js/slidetest.js

Nun tauchen da im code Sachen wie das hier auf:

var roll_status = $.cookie("roll_status");

$("h3#roll_head").addClass('zu');
$("#roll").css("display","none");

Das soll meine Funktion werden:

expander: function(VARIABLE) {

}
Wie baue ich mir die Namen der Variablen innerhalb der Funktion zusammen? Also analog zu oben:

var VARIABLE_status = $.cookie("VARIABLE_status");

$("h3#VARIABLE_head").addClass('zu');
$("#VARIABLE").css("display","none");

In php hätte ich es ja mit Sachen wie "string bla".$variable."string bla" gemacht. Also mit dem Punkt als
Zeichenkettenoperator. Bei JS ist es ja das "+" aber das hier schein z.B. für die erste Zeile falsch zu sein:

var name+"_status" = $.cookie(name+"_status");
 
Hallo probiers mal mit ""+name+"_status" usw.
Hat bei mir geholfen. Wo das Problem genau liegt kann ich auch nicht sagen.
 
N'abend,

Variablennamen kann man in JavaScript AFAIK nur mittels der Funktion eval() dynamisch erstellen.

Also probier für die erste Zeile doch mal folgendes aus:

Code:
eval('var '+ VARIABLE + '_status = $.cookie("' + VARIABLE + '_status");');

Das sollte eigentlich problemlos funktionieren, solange in VARIABLE ein zugelassener Wert steht.

Entsprechend musst Du mit den anderen Anweisungen verfahren, dort kannst Du dir das eval() aber sparen. Problematisch an diesem Ansatz dürfte aber die Sichtbarkeit der Variablen sein, da u.U. die dynamisch erzeugte Variable VARIABLE_status nur im Kontext der Funktion expander() sichtbar ist. Info dazu hier.


Ciao
 
Zuletzt bearbeitet:
Zurück
Oben