this.parentNode.tagName gibt Fehler
Linuchs
- javascript
Guten Morgen,
in der folgenden Konstellation springt das Programm bei Klick auf "Preghiera" in eine Funktion. In der Funktion möchte ich die id des img ermitteln.
<li style="left:45%; top:78%"><img id="I-33050 Ruda" class=ic_kl src='img/ball_rot.gif' alt='o'>
<ul class=lu>
<li><a href="http://[HOST]/?LO=kompakt&KM=100&ORT=13699[&lang]">I-33050 Ruda</a></li>
<li><a class=sound href="javascript:alert('['+this.parentNode.tagName+']');playMedium_code(this,'716.e7f8a7fb')">Preghiera (G. Rossini) - Coro Polifonico di Ruda</a></li>
</ul>
</li>
Deshalb übertrage ich "this" in die Funktion und versuche dort, mich mit parentNode.parentNode hochzuhangeln.
Doch schon das zu Testzwecken eingeschobene this im alert wirft Fehler:
Uncaught exception: TypeError: Cannot convert 'this.parentNode' to object
Error thrown at line 1, column 0 in program code:
alert('['+this.parentNode.tagName+']');
Das verstehe ich nicht. Wie wird this denn angewendet?
Linuchs
Hallo,
<a class=sound href="javascript:alert('['+this.parentNode.tagName+']');playMedium_code(this,'716.e7f8a7fb')">Preghiera (G. Rossini) - Coro Polifonico di Ruda</a>
du erwartest vermutlich, dass this
hier das a-Elementobjekt ist. Das wäre der Fall, wenn du den Funktionsaufruf als Eventhandler notierst, nicht aber wenn er das "Ziel" des Links ist. Dann ist this
das window-Objekt.
Das verstehe ich nicht. Wie wird this denn angewendet?
Siedle es in einen onclick-Eventhandler um, und lass das href-Attribut weg. Wobei es dann IMO semantisch schlauer wäre, statt des Links ein a-Element zu nehmen.
Ciao,
Martin
Hallo,
du erwartest vermutlich, dass
this
hier das a-Elementobjekt ist.
Ja.
Das wäre der Fall, wenn du den Funktionsaufruf als Eventhandler notierst, nicht aber wenn er das "Ziel" des Links ist. Dann ist
this
das window-Objekt.
Siedle es in einen onclick-Eventhandler um, und lass das href-Attribut weg. Wobei es dann IMO semantisch schlauer wäre, statt des Links ein a-Element zu nehmen.
Ja danke, jetzt läuft's rund.
Linuchs
Moin,
Wobei es dann IMO semantisch schlauer wäre, statt des Links ein a-Element zu nehmen.
Quatsch im Quadrat.
Ich meinte natürlich: "... statt des Links ein button-Element zu nehmen."
So long,
Martin