Björn Berg: ImageMap per Schleife durchlaufen

Ich möchte mit JS in einer Schleife alle area-Felder durchlaufen und mir den title ausgeben lassen. Wenn ich einzeln auf die Felder zugreife, funktioniert das alles ganz problemlos:

var name_of_map = "imgMap";
function loadTaskBar () {
  alert(document.getElementsByName(name_of_map)[0].areas[2].title);
}

Das klappt ohne Probleme und JS produziert keinen Fehler. Ich bekomme den Titel der dritten Area angezeigt.

Versuche ich das allerdings in einer Schleife, so bekomme ich immer die Fehlermeldung "document.getElementsByName(name_of_map)[0] has no properties". Und das schon bei Element 0 in der Liste. Das Element hat auch einen title-Tag vergeben.

var name_of_map = "imgMap";
function loadTaskBar () {
  for (var i=0; i <= size_of_areas; i++) {
    document.write("Calling: " + i);
 document.write(document.getElementsByName(name_of_map)[0].areas[i].title);
    }
 }

Der HTML-Code dazu sieht so aus (Auszug!!):
...
<p align="center"><img src="Düsseldorf.jpg" usemap="#imgMap" border="0" width="950" height="672">
<map name="imgMap">
  <area title="Kennung: 51645
Gehört Zu: Gummersbach
Bez: Finanzamt Gummersbach
DS: F212" shape="poly" coords="821,665,821,662,847,662,847,665" href="Düsseldorf_499.html" href="target="_blank">
  <area title="Kennung: 58706
Gehört Zu: Menden
Bez: Amtsgericht Menden
DS: J509" shape="poly" coords="943,352,949,352,949,377,943,377" href="Düsseldorf_689.html" href="target="_blank">
  <area title="Kennung: 50829
Gehört Zu: Köln
Bez: Eichamt Köln
DS: 5807" shape="poly" coords="547,665,547,659,572,659,572,665" href="Düsseldorf_364.html" href="target="_blank">
  <area title="Kennung: 51063
Gehört Zu: Köln
Bez: Staatliches Amt für Arbeitsschutz Köln
...

  1. hi,

    Versuche ich das allerdings in einer Schleife, so bekomme ich immer die Fehlermeldung "document.getElementsByName(name_of_map)[0] has no properties".

    Die bekommst du deshalb, weil du document.write verwendet hast. Wenn du das zu einem späteren Zeitpunkt als während des Ladens des Dokumentes aufrufst, _ersetzt_ es das vorhandene Dokument. Also gibt es darin auch kein Element mit dem Namen name_of_map mehr ...

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Danke, da hätte ich natürlich auch selbst drauf kommen können. :)