Bleicher: Variablen in Obektnamen

ISt es möglich Variablen in Objektnamen zu verwenden??z.B.:
[for (xyz=1; xyz<10; xyz++)
document.imageXYZ.src=bla.jpg
setTimeOut.....]???

  1. Hallo,

    ISt es möglich Variablen in Objektnamen zu verwenden??

    nicht in der Form, wie du es formuliert hast. Aber mit einer anderen Art der Adressierung ist das kein Problem:

    document["image"+xyz].src=bla.jpg;

    So long,
     Martin

    --
    Die letzten Worte des Polizisten:
    Ich hab mitgezählt: Sechs Schuss, jetzt hat er keine Munition mehr!
    1. Hi,

      document["image"+xyz].src=bla.jpg;

      natürlich fehlen da außerdem die Anführungszeichen, also:

      document["image"+xyz].src = "bla.jpg";

      Ciao,
       Martin

      --
      Finanztipp:
      Leihen Sie sich Geld von einem Pessimisten.
      Er rechnet sowieso nicht damit, dass er es zurückbekommt.
      1. alert( document.images["bild"+start] );
        ergibt "undefined"..

        und das mit Anfürungszeichen ist klar - so doof bin ich auch wieder nicht :)

        1. Hallo bleicher.

          alert( document.images["bild"+start] );
          ergibt "undefined"..

          Natürlich. Wie du dem von mir verlinkten Kapitel entnehmen konntest, erwartet document.images einen Index, sprich einen ganzzahligen Wert und keine Zeichenkette.

          Prinzipiell ist es möglich, auf Objekte an Hand übergebener Namen zuzugreifen, doch dein Vorhaben ist mir nach wie vor schleierhaft.

          Versuchst du, über document.all auf das Objekt zuzugreifen?

          Einen schönen Sonntag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
          1. alert( document.images["bild"+start] );
            ergibt "undefined"..

            Natürlich. Wie du dem von mir verlinkten Kapitel entnehmen konntest, erwartet document.images einen Index, sprich einen ganzzahligen Wert und keine Zeichenkette.

            Das stimmt nicht.

            Wenn es ein Bild mit dem Namen "bildX" wobei X der Wert für start ist muss das obige funktionieren.

            Struppi.

            1. Hallo Struppi.

              Das stimmt nicht.

              Ja, eben nachgelesen. Macht der Gewohnheit.

              Wenn es ein Bild mit dem Namen "bildX" wobei X der Wert für start ist muss das obige funktionieren.

              ^gibt

              Ja, sollte es.

              Einen schönen Sonntag noch.

              Gruß, Ashura

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
              [HTML Design Constraints: Logical Markup]
              1. Das stimmt nicht.

                Ja, eben nachgelesen. Macht der Gewohnheit.

                Ist ganz einfach.

                Der Index Operator [] kann immer auch für den Zugriff auf eine Eigenschaft eines Objektes verwendet werden und [Object] ist fast alles in JS.

                Struppi.

                1. Hallo Struppi.

                  Der Index Operator [] kann immer auch für den Zugriff auf eine Eigenschaft eines Objektes verwendet werden und [Object] ist fast alles in JS.

                  Ja, ist mir bewusst.
                  Wie gesagt ist es reine Macht der Gewohnheit, document.images nur in Verbindung mit einem Index zu verwenden.

                  Einen schönen Sonntag noch.

                  Gruß, Ashura

                  --
                  sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                  „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
                  [HTML Design Constraints: Logical Markup]
                  1. Ihr könnt mich noob schimpfen aber bis jetzt hat NICHTS geholfen...
                    ----------------------------------------------
                    <html>
                    <head>
                    </head>
                    <SCRIPT LANGUAGE="JavaScript">
                    var speed=10;//GGeschwindigkeit (pixel pro Schritt)
                    var max=3; //Anzahl der Bilder MINUS 1
                    var start= 0;//iniziirende Variable
                    var left=90;//Position des ersten Bildes
                    var abstand=50;//Abstand Zwischen den Bildern
                    var a=0;//Zwischenseicher
                    var time=20;//Zeit (milisek pro Schritt)
                    function bewegen()
                    {
                     if (start<max) {
                             var variable = "banner"+start;
                     move();
                     }
                    }
                    function move() {
                             if (a<(start*abstand)+left) {
                             a=a+speed;
                             alert(document.images["bild"+start]);
                             document["bild"+start].style.left=a;
                             setTimeout ('move()', time);
                             } else {
                             start++;
                             bewegen()
                     }
                    }
                    </SCRIPT>
                    <body onLoad="bewegen()">
                    <img src="pic/attention.gif" alt="" border="0"  id="" name="" style="position:absolute; left:-20px; top:10px">
                    <img src = "pic/no.gif" id="1" name="bild1" style="position:absolute; left:-20px; top:10px" >
                    <img src = "pic/yes.gif" id ="2" name="bild3" style="position:absolute; left:-20px; top:10px">
                    <img src = "pic/no.gif" id ="" name="bild2" style="position:absolute; left:-20px; top:10px" ><br>
                    </body>
                    </html>

                    1. Ihr könnt mich noob schimpfen aber bis jetzt hat NICHTS geholfen...

                      nooob!


                      <html>
                      <head>
                      </head>
                      <SCRIPT LANGUAGE="JavaScript">

                      hier fehlt das type Attribut,während das language Attribut schon lange mißbiligt ist. Und der skriptblock gehört innerhalb von Head nicht außerhalb.

                      Aber jetzt zu deinem Problem:

                      var start= 0;//iniziirende Variable

                      ...

                      alert(document.images["bild"+start]);
                               document["bild"+start].style.left=a;

                      ...

                      <img src = "pic/no.gif" id="1" name="bild1" style="position:absolute; left:-20px; top:10px" >

                      Merkst du hier eine Diskrepanz?

                      Lass dir mal alert("bild"+start); ausgeben.

                      Struppi.

                      1. verdammt - das war der Relikt von den Versuchen die Bilder über index anzusprechen XD DAAANKE! (ob ich noch ne chance zu lernen habe solche Fehler selbst auszumerzen?)

                        1. verdammt - das war der Relikt von den Versuchen die Bilder über index anzusprechen XD DAAANKE! (ob ich noch ne chance zu lernen habe solche Fehler selbst auszumerzen?)

                          Ja, immer versuchen schritt für Schritt bei der Fehlersuche weiterzukommen, dabei lernt man oft mehr als sich einfach nur die Lösung sagen lassen. Debugging ist das A und O des programmierens

                          also wie in deinem Fall, schritt für Schritt sich jedes anzeigen zu lassen ob es vorhanden ist und welchen Wert es hat (bei Objekten gibt es z.b. die Möglichkeit über for(eigenschaft in objekt) alle Eigenschaften rauszuholen)

                          Struppi.

        2. alert( document.images["bild"+start] );
          ergibt "undefined"..

          Dann gibt es kein Bild mit dem Namen in deinem Dokument.

          Struppi.

    2. --->>document["image"+xyz].src=bla.jpg;
      hab ich in der Form
      ---->>document["bild"+start].style.left=a;
      eingesetzt und kriege nun eine Fehlermeldung :
      'document[...].style is null or not an object'
      die Bilder haben aber 'style/left etc.' Tags :(

      1. --->>document["image"+xyz].src=bla.jpg;
        hab ich in der Form
        ---->>document["bild"+start].style.left=a;
        eingesetzt und kriege nun eine Fehlermeldung :
        'document[...].style is null or not an object'
        die Bilder haben aber 'style/left etc.' Tags :(

        Aber vermutlich andere Namen.

        Was ergibt denn:
        alert( document["bild"+start] );

        bzw. da du von bildern redest:
        alert( document.images["bild"+start] );

        Struppi.

  2. Hallo Bleicher.

    ISt es möglich Variablen in Objektnamen zu verwenden??z.B.:
    [for (xyz=1; xyz<10; xyz++)
    document.imageXYZ.src=bla.jpg
    setTimeOut.....]???

    Du meinst http://de.selfhtml.org/javascript/objekte/images.htm@title=document.images[xyz]? Hier kannst du in der Tat über den Index auf alle Bilder im Dokument zugreifen.

    Einen schönen Samstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]