Struppi: Attribut Auslesen

Beitrag lesen

<a href="titel1_gr.jpg" onclick="GrafikAnzeigen('titel1_gr.jpg', '200', '150', 'Bild 1'); return(false)"><img    class="titel_b1" src="titel1.jpg" width="100" height="80" alt="Bild 1" title="Zum Vergrößern aufs Foto klicken"></a>

Das ist nicht besonders. Besser wäre sowas:

<a href="titel1_gr.jpg"
onclick="GrafikAnzeigen(this.href, 200, 150); return false"

<img src="titel1.jpg" width="100" height="80" alt="Bild 1" title="Zum Vergrößern aufs Foto klicken"></a>

....

damit erreiche ich den Effekt, den ich habe will. Das was mich nervt ist aber, daß ich z. B. "Bild 1" jetzt 2mal angeben muß.

Das Problem ist, dass du von einem Element (das <a>) auf ein zweites (das <img>) zugreifen willst. Dafür gäbe es mehrere Möglichkeiten.

z.b mit [link:http://de.selfhtml.org/javascript/objekte/node.htm#first_child@title=firstChild

<a href="titel1_gr.jpg"
onclick="GrafikAnzeigen(this, 200', 150); return false"

<img src="titel1.jpg" width="100" height="80" alt="Bild 1"></a>

function Grafikanzeigen(obj, w, h)
{
   var titel = obj.firstChild.alt;
   var url = obj.href;
....
}

Ich nehme an, ein Konstrukt wie:
[code lang=javascript]
var TitleText = document.getElementById('thisID').alt;

  
Doch, aber document.images[...] ist einfacher und schneller und abrwärtskompatibel.  
  
  

> Wenn ich  
> ~~~javascript
  

> var TitleText = document.images[n].Attribute('alt');  
> 

~~~ richtig verstehe, dann schreibe ich alle Bilder in ein entsprechendens Array.  
  
Nein, du hast nicht mal bei selfhtml nachgeschlagen was document.images für ein Objekt ist?  
Und die Funktion Attribute() gibt es nach wie vor nicht, zumal selbst getAttribute überflüssig ist und zu Fehlern führen kann.  
  
[n] n ist hier auch nicht unbedingt die Nummer, du kannst dem Bild auch einen Namen geben und das Bild damit ansprechen.  
  
Struppi.

-- 
[Javascript ist toll](http://javascript.jstruebig.de/)