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

Problem z getElementById

VPS Starter Arubacloud
+1 głos
151 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 (251,270 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,280 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 257 wizyt
0 głosów
1 odpowiedź 158 wizyt
pytanie zadane 3 czerwca 2019 w JavaScript przez Kacperhehe Bywalec (2,930 p.)
0 głosów
2 odpowiedzi 614 wizyt
pytanie zadane 13 lipca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

92,455 zapytań

141,263 odpowiedzi

319,100 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...