Wieso zeigt mir die Konsole 'undefined' an?

5 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

pack das ganze mal in ein

$(function() {
    //Dein code hier
});

vermutlich ist das element zu dem zeitpunkt in dem du es der variable zuweist noch nicht geladen. was du in den block da oben packst, wird aber erst aufgeführt wenn die seite geladen wurde.

Woher ich das weiß:Studium / Ausbildung – Softwareentwickler, B. Sc. Informatik

Laut https://wiki.selfhtml.org/wiki/JavaScript/Operatoren/Operatorenrangfolge steht = in der Rangfolge auf Platz 2, der .-Operator auf 16.

Ich würde mal Klammern setzen.

Woher ich das weiß:eigene Erfahrung

Isendrak  06.08.2019, 16:02
Ich würde mal Klammern setzen.

Dir ist aber schon aufgefallen, dass in der von dir verlinkten Liste die Klammern auf Platz 17 stehen?

So wie ich die Liste verstehe (und das entspricht auch meinen bisherigen Erfahrungen mit JS), ist die "Rangstufe" eher so zu verstehen, dass größere Zahl = größere Priorität.

3
Tyldu  06.08.2019, 16:04

nur dass eine höhere zahl höhere priorität bedeuted.... wurde mich stark wundern wenn hier strich vor punkt gerechnet wird.

2

Es war nicht drin, mal "weitere Informationen" anzuklicken? Anscheinend ist "offset" dort im Kontext unbekannt.

Könnte es evtl. sein, dass der Code, der den Fehler auslöst ausgeführt wird, bevor die Seite komplett geladen ist?

Beispiel:

<html>
    <head>
        let navplace = document.getElementById('nav').offsetTop;
        console.log(navplace);
    </head>
    <body>
        <nav id="nav"><a href="about:blank">foobar</a></nav>
    </body>
</html>

führt nicht selten zu einem Fehler, da u.U. versucht wird, auf ein Element zuzugreifen, das noch gar nicht geladen ist.

jquery VOR deinem script eingebunden?