Antje: Array-Durchlauf klappt nicht

Hallo zusammen!

Ich durchlaufe in einem Script ein Array (mit Koordinaten x u. y) und moechte, dass an den entsprechenden Positionen ein Bildchen dargestellt wird

for(var i=0; i<=P.length; i++) {

//hier kommt Rechenkram um auf Pixelkoord. zu kommen

document.p.style.left = pixelx[i];
    document.p.style.top = pixely[i];
}

und im body hab ich dann dies:

<img src="punkt.gif" style="position: absolute" name="p">

Die Berechnung klappt und wenn ich mir die Werte( pixelx u. pixely) testweise anzeigen lasse, funktioniert es auch. Nur beim Bildchen darstellen haperts. Es wird nur das erste (denke ich mal) dargestellt. Woran kann das liegen?

  1. hi,

    Ich durchlaufe in einem Script ein Array (mit Koordinaten x u. y) und moechte, dass an den entsprechenden Positionen ein Bildchen dargestellt wird
        document.p.style.left = pixelx[i];
        document.p.style.top = pixely[i];
    und im body hab ich dann dies:
    <img src="punkt.gif" style="position: absolute" name="p">
    Es wird nur das erste (denke ich mal) dargestellt.

    du hast also mehrere elemente mit dem namen "p"?
    wo wählst du davon in deiner schleifenverabreitung ein _spezielles_ aus?

    (btw: was steht in pixelx[] und pixely[]?)

    gruss,
    wahsaga

    1. Hallo wahsaga!

      Also in pixelx[] und pixely[] stehen Werte zwischen 0 und 400)
      Wenn ich mir diese mit
      document.writeln("_pixelx=",pixelx[i]);
      document.writeln("_pixely=",pixely[i]);

      ausgeben lasse, erhalte ich ne die Liste mit den Werten. Nu moechte ich, dass zu jedem Wertepaar das gif dargestellt wird. Also kein spezielles, sondern alle.

      1. hi,

        Also in pixelx[] und pixely[] stehen Werte zwischen 0 und 400)

        dann fehlen also noch die einheiten (px, em, %, ...), wenn du diese werte den css-eigenschaften top und left zuweisen willst.

        gruss,
        wahsaga

        1. hi,

          danke erstmal. Damit ist das Problem zwar erkannt, aber eine Loesung krieg ich immer noch nicht hin.

  2. Ich habe jetzt festgestellt, dass beim Durchlauf der for-Schleife nur das letzte Element dargestellt wird. Kann mir da vielleicht jemand eine Tip geben, wie alle anderen auch stehen bleiben?

    1. hi,

      Ich habe jetzt festgestellt, dass beim Durchlauf der for-Schleife nur das letzte Element dargestellt wird. Kann mir da vielleicht jemand eine Tip geben, wie alle anderen auch stehen bleiben?

      wie ich dir schon sagte, greifst du innerhalb deiner schleife nur auf die css-eigenschaften _eines einzigen_ html-objektes zu. dieses bekommt also in der schleife nacheinander alle werte blitzschnell zugewiesen, und hat nach dem durchlauf der schleife also den zuletzt gesetzten wert.

      gruss,
      wahsaga