jense: javascript:function(variable)...

hallo alle zusammen,
bin neu und hab wenig Ahnung vielleicht kann mir jemand hier helfen.

Problem:
ich erzeuge 'dynamisch', also per js in einer Schleife links und gebe denen jeweils eine id und eine href. In etwa so:
id='link'+zähler;
href="javascript:Funktion(id)";

in einem spezifischen href sollte also eigenlich
javascript:Funktion('link1') stehen aber es steht immer
javascript:Funktion(id)

was mach ich falsch bzw wo ist der Denkfehler?

Danke schon mal im Voraus

Jense

  1. statt

    href="javascript:Funktion(id)";

    href="javascript:Funktion("+id+")";

    1. statt

      href="javascript:Funktion(id)";
      href="javascript:Funktion("+id+")";

      DANKE - ein Problem weniger; das geht ja echt fix hier!

  2. Ganz einfach, woher soll der Interpreter wissen, ob du den String "id" oder den Wert der Variable id meinst? ;)

    href="javascript:Funktion(id)";

    href = "javascript: Funktion(" + String(id) + ")";
     ... wäre die Lösung ...

  3. Hallo,

    id='link'+zähler;
    href="javascript:Funktion(id)";

    besser: "javascript:Funktion(this.id)";
    Mit dem Schlüsselwort "this" beziehst du dich nämlich immer auf das Objekt, in dessen Kontext der Ausdruck steht - hier also der jeweils angeklickte Link. Damit kann im Quellcode jeder Link gleich aussehen, du brauchst die sich ändernden Werte nur an einer Stelle zu beachten.

    Noch etwas Grundsätzliches: Bei einem Link erwartet man in der Regel, dass man auf einer neuen Seite landet. Für Javascript-gesteuerte Manipulationen innerhalb der Seite ist ein Link mit dem Pseudoprotokoll "javascript:" daher ungünstig. Besser geeignet wäre ein anderes Element, etwa ein Button, bei dem du die Javascript-Aktion im onclick-Handler notierst.

    Falls du mit dem Javascript wichtige Funktionen verbindest, etwa eine Art der Navigation, dann achte bitte auch darauf, dass die Nutzung der Seite grundsätzlich -wenn auch vielleicht mit Komforteinbußen- auch ohne JS möglich ist.

    So long,
     Martin

    --
    Lache, und die Welt wird mit dir lachen.
    Schnarche, und du schläfst allein.