• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z getElementById

Object Storage Arubacloud
+1 głos
164 wizyt
pytanie zadane 15 grudnia 2020 w JavaScript przez kacper1445 Gaduła (4,880 p.)
edycja 15 grudnia 2020 przez kacper1445

Witam mam w pliku .html zapis

<div id="nav-bar" class="nav-bar">
</div>

a w jsie złapałem ten element w ten sposób

let NavBar = document.getElementById('nav-bar');
let NavBarPosition = NavBar.offsetTop;

Jednak w konsoli wyskakuje mi taki błąd

Jest to bardzo prosty zapis więc zastanawiam się gdzie popełniłem błąd.

EDIT. Plik był podpięty w sekcji head, potem przeniosłem to podpięcie na sam początek sekcji body, gdzie też występował ten błąd. Natomiast jak podpiąłem go na samym końcu sekcji body to wszystko zaczęło działać. Nie rozumiem dlaczego tak się stało.

2 odpowiedzi

+1 głos
odpowiedź 15 grudnia 2020 przez VBService Ekspert (254,260 p.)
edycja 15 grudnia 2020 przez VBService
 
Najlepsza

Tu jest odpowiedź wyjaśniająca zachowanie się silnika js-a, w zależności, gdzie "znajduje" się kod js-a (w kodzie html)

JavaScript Execution Order

The Location of JavaScript on Your Web Page (Determining What JavaScript Will Run When)

Since the JavaScript on your page executes based on certain factors, let's consider where and how to add JavaScript to a web page. 

There are basically three locations into which we can attach JavaScript:

  • Directly into the head of the page
  • Directly into the body of the page
  • From an event handler/listener

można temu np.: zaradzić poprzez umieszczenie kodu js-a w:
DOMContentLoaded, load, beforeunload, unload
How to wait for the DOM ready event in plain JavaScript

0 głosów
odpowiedź 15 grudnia 2020 przez SzkolnyAdmin Szeryf (86,400 p.)
I działa bez problemu. Zapewne wykonujesz skrypt w miejscu, w którym strona jeszcze nie wczytała rzeczonego diva.

Podobne pytania

0 głosów
0 odpowiedzi 263 wizyt
0 głosów
1 odpowiedź 162 wizyt
pytanie zadane 3 czerwca 2019 w JavaScript przez Kacperhehe Bywalec (2,930 p.)
0 głosów
2 odpowiedzi 667 wizyt
pytanie zadane 13 lipca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

92,617 zapytań

141,467 odpowiedzi

319,783 komentarzy

61,999 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...