Freak: Trennung von Text und Variablen

Hallo Forum,
Wenn ich eine Id vergebe, die aus Text und Variable besteht, wie trenne ich dann diese beiden, wenn das gesamte schon in '' steht?
-----------------------------
var variable = 3;
var test = 'Text'+variable; // Ergebnis: Text3
-----------------------------
row.innerHTML = ''Text'+variable'; // so nicht
row.innerHTML = '+'Text'+'+variable'; // so auch nicht nicht
Wie denn?
Freak

  1. Wie denn?
    Freak

    ... = '+'Text'+variable+';

    So gehts :-)
    Freak

    1. Hallo,

      ... = '+'Text'+variable+';
      So gehts :-)

      wohl kaum. Das gibt einen Syntax Error.

      Ciao,
       Martin

      --
      Ein guter Lehrer muss seinen Schülern beibringen können,
      eine Frage so zu stellen, dass auch der Lehrer lernen muss,
      um die Frage beantworten zu können.
        (Hesiod, griech. Philosoph, um 700 v.Chr.)
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. Hi,

    Wenn ich eine Id vergebe, die aus Text und Variable besteht, wie trenne ich dann diese beiden, wenn das gesamte schon in '' steht?

    ich verstehe nicht ganz - vermutlich machst du ein Problem, wo keins ist.

    var variable = 3;
    var test = 'Text'+variable; // Ergebnis: Text3

    Okay.

    row.innerHTML = ''Text'+variable'; // so nicht
    row.innerHTML = '+'Text'+'+variable'; // so auch nicht nicht
    Wie denn?

    Genauso wie im ersten Beispiel. Wie kommst du darauf, hier eine andere Notation zu verwenden?

    Ciao,
     Martin

    --
    "Wie geht eigentlich dein neues Auto?"
    "Es geht nicht, es fährt!"
    "Äh, ja. Und wie fährt es?"
    "Och, es geht."
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  3. Hallo,

    Grundsätzlich gilt in JavaScript dass das Zeichen + der Verknüpfungsoperator in ist. Damit kannst du dann z.b. Strings verknüpfen

    row.innerHTML = "foo" + " " + "bar"; // ergibt "boo bar"

    so machst du das ja auch in deinem ersten Beispiel :

    var variable = 3;
    var test = 'Text'+variable; // Ergebnis: Text3

    auch wenn da in "variable" ein Integer drin ist, das macht aber nichts, denn JavaScript ist so "nett" dass es den Integer 3 in einen String "3" verwandelt bevor es den Operator + benutzt. Deshab kommt das raus was du haben wolltest.

    ''Text'+variable'; // so nicht

    Hier hast du das Problem dass du mit '' erst einmal einen leeren String machst (das sind zwei ' ) und danach eine Variable Text (die nirgendwo definiert ist) verwendest. Man sieht das daran dass Text nicht innerhalb von Anführungszeichen ist (weil du nach dem öffnenden ' es gleich mit dem zweiten ' schließt), und JavaScript davon ausgehen muss dass Text ein Variablenname ist. Da diesem bisher nichts zugewiesen wurde ist da einfach ein undefined drin. Das problem ist jetzt dass JavaScript nicht weiß was es mit einem leeren String gefolgt von einer Variable anfangen soll wenn da kein Operator wie + oder so dazwischen steht. Deshalb wird es eine Syntax Error Exception werfen und dein script nicht weiter ausführen.

    Was du warscheinlich machen wolltest war:

    row.innerHTML = "Text" + variable;

    '+'Text'+'+variable'; // so auch nicht nicht

    Hier ein ähnliches Problem , erst sagst du es gibt einen String "+" dann steht dahinter direkt eine Variable Text die nirgendwo zugewiesen wurde. JavaScript weiß nicht was es machen soll wenn ein String gefolgt von einer Variable im Quelltext steht, ohne dass dazwischen ein Operator wie + steht und wirft eine "Syntax Error" Exception.

    Also noch einmal, der Verkettungsoperator ist + in JavaScript, wenn man einen String deklarieren möchte dann umschließt man diesen mit einem Paar von quotes ' oder double quotes " so wie hier:

    "foo"; // ein String  
    foo; // eine Variable mit dem Namen foo
    

    will man nun diese beiden verknüpfen macht man das mit +:

    "foo" + foo;

    will man das Ergebnis in eine Variable schreiben macht man:

    var bar = "foo" + foo;

    Hoffe damit werden die Unterschiede etwas klarer.

    Jeena

    1. Hi Jeena,

      row.innerHTML = "foo" + " " + "bar"; // ergibt "boo bar"

      Niemals :-P ;-)

      Sorry, der musste jetzt mal sein.

      Vielen vielen Dank für die lange, saugute Erklärung! Hat mir sehr weiter geholfen.

      Schönes WE, Freak