document.images[x].src

kesnw

Erfahrenes Mitglied
Hi,

komme ich an ein bestimmtes Bild nur durch die Wertangabe ran? Auf meiner Seite sind zig Bilder, ich will aber nur auf ein bestimmtes zugreifen. Muss ich jetzt alle Bilder durchzählen und dann die Zahl angeben? Ist schlecht, da ich mit sicherheit immer wieder andere Bilder in den Quelltext einfügen werde und so das Script dauernd anpassen müsste...
 
Du kommst auch über den Namen ran(sofern das Bild ein name-Attribut hat)

Code:
document.nameDesBildes.src

...und in DOM-Browsern natürlich über die ID(falls vorhanden)
Code:
document.getElementById('idDesBildes').src
 
Danke, aber warum funktioniert das dann nicht:

Code:
   <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">

   function rollup(mod)
   {
     if(document.getElementById(mod).src == "images/plus.gif")
     {
       document.getElementById(mod).src ="images/minus.gif";
     } else
     {
       document.getElementById(mod).src = "images/plus.gif";
     }
   }
   </SCRIPT>
<TABLE>
  <TR VALIGN="top">
    <TD ALIGN="left">&nbsp;</TD>
    <TD ALIGN="center" valign="center"><img src="images/plus.gif" id="mod" onclick="rollup('mod');"></TD>
    <TD ALIGN="left">Modules</TD>
    <TD ALIGN="left"></TD>
    <TD ALIGN="left">Points</TD>
    <TD ALIGN="left"></TD>
  </TR>
</TABLE>

Es erscheint zwar kein Fehler, aber es passiert auch nichts...
 
Das Ansprechen des Bildes klappt schon... was nicht wie gewünscht funktioniert, ist der Vergleich:
Code:
if(document.getElementById(mod).src == "images/plus.gif")
... die src-Eigenschaft enthält den kompletten Pfad, und nicht nur das, was du im <img>-Tag angegeben hast... weshalb der Vergleich nie zutrifft.

Du könntest da mittels RegExp lediglich das Ende der src Prüfen:
Code:
if(String(document.getElementById(mod).src).match(/images\/plus\.gif$/))

Ansonsten... wenn du in deinem Skript immer auf das aktuell angeklickte Bild zugreifen willst, geht das bequemer über das Schlüsselwort this(das erspart die das Notieren des Namens).
Damit übergibst du das Bild als Objekt und hast in der Funktion Zugriff auf all seine Eigenschaften:

Code:
<script type="text/javascript">
<!--
   function rollup(objImg)
   {
     if(String(objImg.src).match(/images\/plus\.gif$/))
     {
       objImg.src ="images/minus.gif";
     } else
     {
       objImg.src = "images/plus.gif";
     }
   }
//-->
</script>
<!-- ... -->
<img src="images/plus.gif" id="mod" onclick="rollup(this);">
 

Neue Beiträge

Zurück