onclick mit javascript aufrufen
djcampi
- javascript
ich habe eine function in javascript geschrieben, die auch funktioniert (mit einem dafür angelegten link getestet)
nun möchte ich, dass alle links in einem div mit der id "referenzen" beim anklicken diese function ausführen. ich habe mehrere dinge versucht, aber komme nicht zu einem ergebnis.
ich hoffe mir kann jemand weiterhelfen,
danke schonmal
Hi,
ich habe mehrere dinge versucht, aber komme nicht zu einem ergebnis.
hast Du auch versucht, diese mehreren Dinge und deren Ergebnisse (derer es offensichtlich auch mehrere gibt, da Du ja nicht nur zu einem kommst) jemandem (beispielsweise uns) mitzuteilen, damit Dir eventuelle Fehler genannt werden können?
Cheatah
z.b. diese funktion hier
function aufrufen() {
var test=document.getElementsByTagName("a")[8];
test.onclick=meineFunktion();
}
wobei getElementsByTagName("a")[8] der erste link in dem div ist und ich es erstmal nur mit diesem link versucht habe.
Hi,
test.onclick=meineFunktion();
Hiermit rufst du die Funktion direkt auf, und weist ihren Rückgabewert als onclick-Handler für test zu - das ist vermutlich nicht das, was du willst.
Stattdessen möchtest du vermutlich nur die Funktionsreferenz zuweisen - also ohne runde Klammern.
MfG ChrisB
@@djcampi:
nuqneH
wobei getElementsByTagName("a")[8] der erste link in dem div ist
Ach ja?
Und wenn sich später mal der Seiteninhalt ändert? Dann willst dein Script anpassen müssen? Und es aber vergessen zu tun?
document.getElementById("referenzen").getElementsByTagName("a")[0]
ist (vermutlich) der erste Link in dem 'div'.
document.getElementById("referenzen").getElementsByTagName("a")
ist (vermutlich) das Array mit allen Links in diesem 'div'.
Qapla'
Hallo,
document.getElementById("referenzen").getElementsByTagName("a")[0]
ist (vermutlich) der erste Link in dem 'div'.
document.getElementById("referenzen").getElementsByTagName("a")
ist (vermutlich) das Array mit allen Links in diesem 'div'.
ja, und
for (var i in linkArray) { linkArray[i].onclick = meineFunktion; }
ist (vermutlich) die gesuchte Lösung.
Gruß, Don P
for (var i in linkArray) { linkArray[i].onclick = meineFunktion; }
> ist (vermutlich) die gesuchte Lösung.
Warum willst du allen Eigenschaften, der HTML collection eine onclick Eigenschaft zufügen? Es reicht doch, wenn du diese den Nodes zufügst.
Also besser einfach so:
`for (var i = 0; i < linkArray.length; i++) { linkArray[i].onclick = meineFunktion; }`{:.language-javascript}
Struppi.
Hallo,
Warum willst du allen Eigenschaften, der HTML collection eine onclick Eigenschaft zufügen? Es reicht doch, wenn du diese den Nodes zufügst.
Ach ja, eine HTMLcollection hat ja noch mehr Eigenschaften als nur die Nodes, ich vergaß. Bin eben ein Freund von for-in-Schleifen, selbst wenn sie manchmal langsamer sein sollten...
Also besser einfach so:
for (var i = 0; i < linkArray.length; i++) { linkArray[i].onclick = meineFunktion; }
Oder mit meinem geliebeten in
dann eben so:
for (var i = 0; i in linkArray; i++) { linkArray[i].onclick = meineFunktion; }
Gruß, Don P
alias Schizo ;-)
Hi,
nun möchte ich, dass alle links in einem div mit der id "referenzen"
das darf schon mal nicht sein, id's sind zwingend unique. Du kannst höchstens eine Klasse verwenden und alle Links in einem bestimmten Elternelement prüfen, ob sie diese Klasse besitzen (fertige Funktionen siehe Archiv).
Gruesse, Joachim
Hi,
nun möchte ich, dass alle links in einem div mit der id "referenzen"
das darf schon mal nicht sein, id's sind zwingend unique.
Das darf schon sein, wenn man 'mit der id "referenzen"' auf das davor stehende DIV und nicht auf die Links bezieht.
MfG ChrisB