javascript:function(variable)...
jense
- javascript
0 qwert0 jense
0 Patrick Figel0 Der Martin
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
statt
href="javascript:Funktion(id)";
href="javascript:Funktion("+id+")";
statt
href="javascript:Funktion(id)";
href="javascript:Funktion("+id+")";
DANKE - ein Problem weniger; das geht ja echt fix hier!
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 ...
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