Ergebnis 1 bis 9 von 9
  1. #1
    dasmein ist offline Jungspund
    registriert
    10-04-2017
    Beiträge
    11

    Value-Wert einer Variable für die Identifiezierung einer anderen Variable möglich ?

    Hallo,
    gibt es eine Möglichkeit eine Variable anzusprechen mithilfen von den Value-Werten einer anderen oder mehreren Variablen ? Beispiel:
    Code:
    var eins = "a";
    var zwei = "20";
    Über die Werte a und 20 möchte ich nun eine neue Variable a20 definieren! Bisher habe ich es nur geschafft, eine bestimmten ID im HTML-File auszulesen:
    Code:
    document.getElementById("Kategorie"+(i+1)).value=Kategoriename;

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.491

    AW: Value-Wert einer Variable für die Identifiezierung einer anderen Variable möglich

    Das nennt sich Konkatenation und die Syntax in JS ist das Plus. Also: document.getElementById("Kategorie"+eins+zwei).value=Kategoriename;
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    dasmein ist offline Jungspund
    registriert
    10-04-2017
    Beiträge
    11

    AW: Value-Wert einer Variable für die Identifiezierung einer anderen Variable möglich

    Danke erstmal für deine Antwort!
    Das habe ich ja bei ...getElementById.... ja auch so hinbekommen! Nur bei den Variablen will es nicht klappen. So habe ich es mal getestet:
    Code:
    var eins="a";
    var zwei=20;
    var eins+zwei = "Ich gehöre zur Variable a20";
    Auch mit
    Code:
     var a+zwei="Ich gehöre zur Variable a20"
    komme ich nicht zum Ziel.

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.545

    AW: Value-Wert einer Variable für die Identifiezierung einer anderen Variable möglich

    Das funktioniert bei Variablen nur über extrem hässliche Wege. Mach' dir besser ein Objekt, wo du deine "Variablen" als Keys hinterlegst. Dann kannst du über Schema 4 darauf zugreifen:
    Code:
    var obj = {a20: "test"};
    var eins="a";
    var zwei=20;
    alert(obj[eins+zwei]);

  5. #5
    Avatar von andreax
    andreax ist offline Tripel-As
    registriert
    09-07-2016
    Beiträge
    207

    AW: Value-Wert einer Variable für die Identifiezierung einer anderen Variable möglich

    Ich vermute mal mit hässlichen wegen ist "eval" gemeind.
    Aber Weil man in so einem Vorhaben ohnehin erst auf Vorhandensein der Variable prüfen muss.
    ( eventuell werden vom User über ein Formular die Werte eingegeben)
    post ich hier gleich mal mit try & catch
    HTML-Code:
    <!DOCTYPE html>
    
    <html lang="en">
    	<head>
    		<meta charset="UTF-8" />
    		<meta name="description" content=""/>
    		<meta name="keywords" content=""/>
    		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    		<title>EVAL vs OBJECT</title>
    		
    	</head>
    	<body>
    <div id="test" >Hallo JS Welt Forum :)</div>	
    	
    <script> 
    
    var x = 'Z';
    var y = 38;
    const Z39 = "let's test";
    try{ alert( eval(x+y) ); }
    catch(err) {alert('Variable nicht vorhanden');} // Variable nicht vorhanden
    
    var obj = {a20: "test"};
    var eins="a";
    var zwei=29;
    try{ alert( obj[eins+zwei] ); }
    catch(err) {alert('Variable nicht vorhanden');} // undefined
    
    </script>	
    	</body>
    </html>

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.545

    AW: Value-Wert einer Variable für die Identifiezierung einer anderen Variable möglich

    Zitat Zitat von andreax Beitrag anzeigen
    Ich vermute mal mit hässlichen wegen ist "eval" gemeind.
    Ja - und im Zusammenhang mit Usereingaben ist es sogar gefährlich.

    Die Prüfung, ob die "Variable" dann vorhanden ist, ist mit meinem Ansatz natürlich auch möglich und sogar ohne try:
    Code:
    var obj = {"a 20": "test"};
    var eins = "a ";
    var zwei = 29;
    if (obj.hasOwnProperty(eins + zwei)){
    	alert( obj[eins+zwei] );
    }
    else {
    	alert('Variable nicht vorhanden');
    }
    Außerdem kann man hier dann Dinge hinterlegen, die in einem Variablennamen gar nicht vorkommen können.

  7. #7
    Avatar von andreax
    andreax ist offline Tripel-As
    registriert
    09-07-2016
    Beiträge
    207

    AW: Value-Wert einer Variable für die Identifiezierung einer anderen Variable möglich

    Das mit dem Obj ist sicher sehr praktisch man könnte so auch ein JSON übergeben ect.
    aber es ist nicht weniger gefährlich.
    Aber kann ich auch eine const od let variable verwenden?
    oder was wenn die Variable doppelt vorhanden ist.

    PHP-Code:
    var obj = {a20"test",a20:"test2"};
    var 
    eins="a";
    var 
    zwei=20;
    try{ 
    alertobj[eins+zwei] ); } // ausgabe  test2

    catch(err) {alert('Variable nicht vorhanden');} // undefined 
    Geändert von mikdoe (21-05-2017 um 14:38 Uhr) Grund: code tags repariert

  8. #8
    Avatar von rckd
    rckd ist offline Eroberer
    registriert
    04-01-2017
    Beiträge
    59

    AW: Value-Wert einer Variable für die Identifiezierung einer anderen Variable möglich

    Der lesende Zugriff auf nicht vorhandene Objekt-Eigenschaften verursacht keine Exception, sondern liefert undefined zurück.

  9. #9
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.545

    AW: Value-Wert einer Variable für die Identifiezierung einer anderen Variable möglich

    Zitat Zitat von andreax Beitrag anzeigen
    aber es ist nicht weniger gefährlich.
    Warum? Was ist daran gefährlich?
    Zitat Zitat von andreax Beitrag anzeigen
    Aber kann ich auch eine const od let variable verwenden?
    Was meinst du damit genau? Die Variable obj kann ich natürlich auch mit const/let deklarieren. Und wenn ich eine Eigenschaft in dem Objekt als unveränderlich markieren möchte, kann ich das über https://developer.mozilla.org/en-US/...defineProperty auch machen - oder ich versiegle das komplette Objekt: https://developer.mozilla.org/en-US/...ts/Object/seal

    Zitat Zitat von andreax Beitrag anzeigen
    oder was wenn die Variable doppelt vorhanden ist.
    Was soll dann sein? Auch eine normale Variable kannst du überschreiben.

Ähnliche Themen

  1. [FRAGE] Wert in Feld auf einer anderen Webseite schreiben
    Von zachy im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 06-07-2016, 17:42
  2. Antworten: 2
    Letzter Beitrag: 21-07-2012, 20:26
  3. Wert an zweite Variable einer Funktion übergeben
    Von centauro im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 13-02-2009, 09:31
  4. Antworten: 1
    Letzter Beitrag: 17-07-2006, 15:21
  5. Antworten: 8
    Letzter Beitrag: 01-11-2002, 14:49

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •