getElementById() für Content der mit innerHtml gesetzt wird
bechte
- javascript
Hallo,
weiß jemand, warum es nicht möglich ist, auf die Elemente, die mittels innerHtml gesetzt werden (als HTML Code), mittels document.getElementById() zuzugreifen?
Kurzes Beispiel:
[...]
<div id="cnt"></div>
[...]
<script...>
[code lang=javascript]
// ...
// Enthält ein Tag <img id="img" src="" />
document.getElementById("cnt").innerHtml = responseFromAjaxRequestWithValidHTML;
// ...
var myImage = document.getElementById("img");
// myImage == null! why?
</script>
[/code]
Schöne Grüße,
bechte
var myImage = document.getElementById("img");
Hier hast du das Element-Objekt, nicht den Inhalt.
Mit myImage.innerHTML
kannst du den Inhalt auslesen, oder einfach
var myImage = document.getElementById("img").innerHTML;
Hallo Hansi,
danke für die schnelle Antwort, aber ich glaube wir haben etwas aneinander vorbei geschrieben.
»» var myImage = document.getElementById("img");
Hier hast du das Element-Objekt, nicht den Inhalt.
Es ist mir bewusst, dass mir getElementById(name) ein Objekt liefert.
Leider liefert mir in diesem Fall die Methode aber gar kein Objekt, d.h. das Objekt ist null bzw. anders ausgedrückt, es wird nicht gefunden. Ich habe den Code nur etwas "abstrakter" geschrieben, weil es nur um das Auflösen des Objekts geht, dh. nur das was mir getElementById(name) liefert.
Hast Du noch eine Idee, warum die Methode das Objekt nicht finden kann? Ich habe im DOM Browser geschaut und dort wird es angezeigt, lediglich die Methode findet es nicht. :-(
Schöne Grüße,
bechte
Hallo, hat sich als ein Timing Problem herausgestellt. :-(