Thomas: Objektbezeichnung zusammensetzen

Hallo zusammen - ich verzweifle seit Tagen an einem kleinen Javascript-Problem, zu dem es bestimmt eine völlig simple Lösung gibt.

Ich muss eine Objektbezeichnung dynamisch zusammensetzen.

Also nicht:
document.bildname.src="pfeil.gif"

sondern bildname soll in einer Loop durch ein Präfix plus dem Index der Loop zusammengesetzt werden.
Also sowas wie

for(var i=0; i<concernedLayers.length; i++) {
   document.xyz+i.src="pfeil.gif";
 }

D.h. die Image-Ansprache soll loopen über xyz0, xyz1, xyz2 etc.

Auch mit dieser eval-Funktion habe ich's nicht geschafft.

Any ideas?

  1. Hallo,

    sondern bildname soll in einer Loop durch ein Präfix plus dem Index der Loop zusammengesetzt werden.
    Also sowas wie

    for(var i=0; i<concernedLayers.length; i++) {
       document.xyz+i.src="pfeil.gif";

    document.images["xyz"+i].src="pfeil.gif";

    }

    MfG, Thomas

    1. Hallo,

      sondern bildname soll in einer Loop durch ein Präfix plus dem Index der Loop zusammengesetzt werden.
      Also sowas wie

      for(var i=0; i<concernedLayers.length; i++) {
         document.xyz+i.src="pfeil.gif";
            document.images["xyz"+i].src="pfeil.gif";
       }

      MfG, Thomas

      oder so

  2. Hallo !

    Auch mit dieser eval-Funktion habe ich's nicht geschafft.
    Any ideas?

    Ja: benutze die eval-funktion richtig :) ALSO:

    for(var i=0; i<concernedLayers.length; i++) {
       document.xyz+i.src="pfeil.gif";
     }

    Also:

    document.xyz+i.src="pfeil.gif";

    eval("document.xyz" + i + ".src = "pfeil.gif";");

    so muss das aussehen. eval macht also z.B. sowas:

    var 1 = "alert("";
      var text = "Hallo";
      var 2 = "");";

    eval(1 + text + 2);

    D.h. die Image-Ansprache soll loopen über xyz0, xyz1, xyz2 etc.

    also was soll eigentlich dein document.xyz1.src ? Ein Bild kannst du so nicht ansprechen. Eher so: document.images[1] oder so: document.getElementbyId("xyz1") - ich denke, das willst du machen, oder so: document.getElementbyname("namedesobjekts"), naja, kannst es auch mit all machen, ist aber dumm (geht nur unter IE).

    Letztenendes bekommst du dein Bild

    <img src="vorher.gif" id="xyz1">

    auf jeden fall damit:

    eval("document.getElementbyId("xyz" + i + "").src = "pfeil.gif";");

    nacher zu src="pfeil.gif" !

    Auch mit dieser eval-Funktion habe ich's nicht geschafft.

    Jetzt schon :)

    Any ideas?

    schon gegeben ;)

    benji

    1. Hallo,

      so muss das aussehen. eval macht also z.B. sowas:

      var 1 = "alert("";
        var text = "Hallo";
        var 2 = "");";

      eval(1 + text + 2);

      Variablennamen duerfen nicht aus Ziffern bestehen und auch nicht damit beginnen.

      auf jeden fall damit:

      eval("document.getElementbyId("xyz" + i + "").src = "pfeil.gif";");

      nacher zu src="pfeil.gif" !

      Abgesehen davon, dass es noch immer getElementById lautet, ist auch hier eval() voellig ueberfluessig:

      document.getElementById("xyz"+i).src="pfeil.gif";

      MfG, Thomas

      1. Ja ok, auf solche Kleinigkeiten sollte man mal nicht achten...

        Im grunde genommen egal.

        benji