Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] getElementById am Anfang immer undefined

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] getElementById am Anfang immer undefined

    Hallo,
    wenn ich die folgende Funktion aufrufe soll in dem div-Container ein Text angezeigt werden das funktioniert auch nur wenn ich die Seite neulade erscheint da immer undefined und nicht Anfangs Text
    Code:
    <script>
        function test(name) {
                   
            document.getElementById('div').innerHTML=name;
        
            }
        </script>
    
    <div id='div'>Anfangs Text
    </div>

  • #2
    Hallo,

    das liegt daran, dass der DOM-Baum (für Erklärung siehe unser Wiki) zu dem Zeitpunkt, an dem das Skript ausgeführt wird, noch nicht vollständig aufgebaut ist. Das DIV existiert zu dem Zeitpunkt also noch gar nicht.
    Lösung: du schreibst das Skript ans Ende der Seite und nicht in den Kopf oder du wartest das load-Event ab.
    Also
    Code:
    onload=""
    oder besser vollkommen per JavaScript:
    Code:
    window.onload = function()
    {
    }
    Auch möglich:
    Code:
    window.addEventListener('load', callback, true);

    Kommentar


    • #3
      ösung: du schreibst das Skript ans Ende der Seite und nicht in den Kopf
      Zumindest den test (); Aufruf. So wieso da oben steht, passiert da eh' nix.

      Kommentar


      • #4
        JavaScript in den Fuß zu schreiben hat außerdem einen Performance-Vorteil, der aber erst bei großen Skripten zum Tragen kommt.
        Die Seite ist nämlich schon geladen und dann wird erst das JavaScript ausgewertet. Ansonsten läuft das andersherum und das macht den User unglücklich (wie gesagt: bei kleinen Skripts ist der Geschwindigkeitsvorteil irrelevant).

        Kommentar

        Lädt...
        X