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

Javascript - getElementById nie działa.

Object Storage Arubacloud
0 głosów
3,146 wizyt
pytanie zadane 31 października 2016 w JavaScript przez Dominik Kapek Nowicjusz (240 p.)
zmienione kategorie 31 października 2016 przez Arkadiusz Waluk

Witam, robię poradniki pana Mirosława i podczas 3 odcinka nie mogę wyświetlić zawartości zmiennej - próbowałem zrobić za pomocą funkcji - nie działa, bez funkcji - również nie działa. Żaden debugger nie zwraca błędów.

var haslo = "Bez pracy nie ma pieniedzy";
document.getElementById("haslo").innerHTML = haslo;
<!DOCTYPE HTML>
<html lang="pl">
<head>
	<meta charset="utf-8" />
	<title>Szubienica</title>

	<link rel="stylesheet" href="style.css" type="text/css" />
	<script src="szubienica.js"></script>

</head>
<body>
<div id="haslo"></div>

</body>
</html>

efekt:

http://scr.hu/7acv/ymc1k
 

3 odpowiedzi

0 głosów
odpowiedź 31 października 2016 przez Fenix Nałogowiec (26,750 p.)
wybrane 31 października 2016 przez Dominik Kapek
 
Najlepsza

Poniewaz DOM nie zdazyl sie zaladowac, i w momencie wywolywania skryptu nie istnieje div o id haslo. Przenies swoj skrypt na koniec body, lub uzyj

 document.addEventListener("DOMContentLoaded", function(event) { 
//Tutaj Twoj kod


 });

 

komentarz 31 października 2016 przez Dominik Kapek Nowicjusz (240 p.)
Dziękuje bardzo serdecznie za pomoc, w poradnikach p.Mirosława było inaczej - czyżby zmieniły się standardy?
komentarz 31 października 2016 przez ScriptyChris Mędrzec (190,190 p.)
To raczej Pan Mirosław w swoich tutorialach nie stosuje się do obecnych standardów :) Na forum jest wiele tematów z dyskusją o tym, jak m.in.:

http://forum.pasja-informatyki.pl/122259/co-jest-nie-tak-z-najnowszym-odcinkiem-kursu-miroslawa-zelenta?show=122259#q122259

Przejrzyj również review pierwszego odcinka kursu autorstwa Comandeera: http://www.webkrytyk.pl/krytyka/wideokursy/wideokursy-1-kurs-js-i-css-miroslawa-zelenta/
+2 głosów
odpowiedź 31 października 2016 przez Ivan Maniak (60,650 p.)

Skrypt wstawiony w head wykonuje się od razu, czyli strona jeszcze nie widzi żadnych elementów, w tym #haslo, a już chce się nim zajmować.
Jednym sposobem aby to naprawić jest wstawienie script pod koniec body (I ten polecam w 99% przypadkach)

<!DOCTYPE HTML>
<html lang="pl">
<head>
    <meta charset="utf-8" />
    <title>Szubienica</title>
 
    <link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
    <div id="haslo"></div>
    <script src="szubienica.js"></script>
</body>
</html>

Zawsze jest drugie wyjście, a mianowicie powiedzenie javascript, aby kod który ma się wykonać, żeby zrobił to dopiero po załadowaniu strony. Możesz to zrobić korzystając z event-ów w javascript. Przykładowy kod:

window.addEventListener('load', function(){
  var haslo = "Bez pracy nie ma pieniedzy";
  document.getElementById("haslo").innerHTML = haslo;
});

 

0 głosów
odpowiedź 31 października 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
Zapewne ten kod JavaScript masz w pliku "szubienica.js", który podpinasz w head. Czyli w momencie jego podpięcia i wykonania elementu o id "haslo" jeszcze na stronie nie ma (jest tworzony dopiero w body), stąd nic się nie dzieje.

Najprostsze rozwiązanie to przeniesienie kodu JavaScript przed samo zamknięcie body </body>, jeśli tylko to możliwe to dołączanie plików z kodem JS właśnie w tym miejscu jest zalecane.

Podobne pytania

0 głosów
2 odpowiedzi 624 wizyt
pytanie zadane 17 lutego 2017 w JavaScript przez Mahen Nowicjusz (150 p.)
0 głosów
3 odpowiedzi 1,853 wizyt
0 głosów
1 odpowiedź 546 wizyt
pytanie zadane 3 listopada 2017 w JavaScript przez maver100 Nowicjusz (120 p.)

92,617 zapytań

141,466 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!

...