Zur Boardunity Forenstartseite
  #1  
Alt 18.12.2006, 16:29
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639

JS: string -> variable


Morgen!

Ich bin hier am verzweifeln...


Folgender Code:
Code:
fenster = new Array("offen", "geschlossen");
var blubb = $('li#'+whatopen).get(0).parentNode.id; // ergibt 'fenster'
var texton = blubb+[0]; // ergibt fenster0 statt offen
Ich habe also ein Array mit Daten (offen oder geschlossen)
blubb ist ein String mit dem Inhalt 'fenster'
und texton soll einfach nur 'offen' ausgeben, also das erste Element des Array mit dem Namen 'fenster'.

Mein Problem liegt in der letzten der 3 Zeilen. Statt 'offen' enhält diese Variable nur 'fenster0' wobei ich denke, dass er blubb nicht richtig erkennt.

Was muss ich nun ändern damit er mir, so wie er es soll, das erste Element des Arrays mit dem Namen 'fenster' auf die Variable 'texton' legt?


Grüsse und Danke!


Achso nicht wundern... die zweite Zeile ist jQuery mit nem Bugfix um die ID des Parents des Elements mit der ID 'whatopen' zu erhalten.
  #2  
Alt 18.12.2006, 16:51
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 779
Jupp, ist doch klar.

Muss das Array unbedingt in einer Variable "fenster" gespeichert sein? Sowas hier:
Code:
var state = {"fenster":["offen", "geschlossen"]};
Wäre viel leichter zu verarbeiten:
Code:
var texton = state[blubb][0];
Ansonsten wird's nur über eval gehen - und eval ist evil.

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #3  
Alt 18.12.2006, 17:15
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
evtl eval()`??

eval("foobar = " + blubb + "[0];");
obs geht.. ka

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #4  
Alt 18.12.2006, 18:24
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
Zitat:
Zitat von Patrick Gotthardt Beitrag anzeigen
Jupp, ist doch klar.

Muss das Array unbedingt in einer Variable "fenster" gespeichert sein? Sowas hier:
Code:
var state = {"fenster":["offen", "geschlossen"]};
Wäre viel leichter zu verarbeiten:
Code:
var texton = state[blubb][0];
Ansonsten wird's nur über eval gehen - und eval ist evil.
Perfekt, danke!

Ich habe nun folgendes:
Code:
    var state = {
                "fenster":["offen", "geschlossen"],
                "tueren":["offen", "geschlossen"],
                "garagentore":["offen", "geschlossen"],
                "lichter":["an", "aus"]
                    };
Wie kann ich nun eine Schleife konstruieren damit ich auf 'fenster', 'tueren', 'garagentore' und 'lichter' eine Funktion anwenden kann?

  #5  
Alt 20.12.2006, 01:41
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 779
Jaha... und da hab ich wieder die Frage, auf die ich wohl nie die Antwort kennen werde...

Code:
for(var key in state) {
    // mach was mit "key", wobei "key" = "fenster"|"tueren"|"garagentore"|"lichter"
    // ans array kommst du mit state[key]
}
So oder so ähnlich müsste das eigentlich theoretisch gehen...

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #6  
Alt 20.12.2006, 19:24
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
So und genau so geht es sogar.


Danke!

Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SMARTY variable im {php} Bereich Dr.Schmidt Programmierung und Datenbanken 6 25.07.2005 10:47






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25