Bilder auf einer Seite zählen

zehnerd

Grünschnabel
Hallo,

Ich bin dabei eine Art Umfrage Seite zu erstellen, auf welcher 2 ja/nein img bildchen sind, welche durch einen onClick vom User durch ein anderes getauscht werden(Das jeweils ausgewählte wird durch ein graues Image ausgetauscht um den Effekt hervorzuheben ;)). Was ich nun machen will, ist die Anzahl der "Ja" Bilder zu zählen. Zum Bleistift fangen alle "Ja" Bilder mit einem @ an. Das will ich machen, damit ich dann auf der nächsten Seite eine Art Auswertung machen kann, welche Anzeigt wie oft der User Ja gedrückt hat. Natürlich sollte jedes Ja nur einmal gezählt werden, und nicht jedesmal wenn der User auf das img drückt ;-)

Ich hatte so etwas schonmal im inet gefunden, nur hat es nicht funktioniert:
Code:
  function count()
    {
        var anz=0;
        for(var i in document.images)
        {
            if(document.images[i].name.substring(0,1)=="J") anz++;
        }
        alert(anz + " Bilder gefunden!");   
    }

Fehler im IE ist dann folgender: document.images[...].name ist Null oder kein Objekt


Danke für eure Hilfe

gruss,
zehnerd
 
Durchlaufe die Schleife mal so:
Code:
for(i=0;i<document.images.length;++i)
...warum, das siehst du, wenn du dir mal testhalber bei deiner Version i ausgeben lässt.

Die Ursache:
Code:
for(var i in document.images)
...diese Methode wird benutzt, um "assoziative Arrays" in Javascript zu durchlaufen.
Der Knackpunkt: es gibt in JS keine "assoziativen Arrays" :suspekt:

In Wirklichkeit liefert dir diese Methode alle Eigenschaften eines Objektes....deswegen wird es auch für diese falschen Arrays verwendet, da diese in Wirklichkeit selbst erstellte Objekte sind, und die üblichen Array-Methoden dort nicht funktionieren.

Und "document.images" besitzt eine Reihe von Eigenschaften, bspw. name und length, was dann in deiner Schleife den Fehler verursacht.
 

Neue Beiträge

Zurück