Mam problem z wyświetlaniem tekstu na stronie za pomocą javascript

0

imie nie wyswietla na stronie. Dlaczego?


```<html>
<head>
    <title>Zadanie2</title>
</head>
<body>
    <script>
        document.getElementById("imie").innerHTML = "tutaj jest imie";
    </script>
    <h2>1</h2><p id="imie"></p>
</body>
</html>
4

Gdybyś otworzył konsolę zobaczyłbyś komunikat błędu (klawisz F12)

Uncaught TypeError: Cannot set property 'innerHTML' of null
    at index.html:7

Dzieję się tak dlatego, że kod javascript wykonuje się przed wygenerowaniem elementu html z id "imie". Najprostszy sposób na naprawienie tego błędu to przesunięcie taga script z kodem javascript na sam dół sekcji body:

<html>
<head>
    <title>Zadanie2</title>
</head>
<body>
    <h2>1</h2><p id="imie"></p>
    <script>
        document.getElementById("imie").innerHTML = "tutaj jest imie";
    </script>
</body>
</html>

Inne możliwe rozwiązanie to poczekanie aż wszystko się załaduje, można to sprawdzić np. za pomocą dodania kodu do zdarzenia "load":

<html>
<head>
    <title>Zadanie2</title>
</head>
<body>
    <script>
        window.addEventListener('load', () => {
            document.getElementById("imie").innerHTML = "tutaj jest imie";
        })
    </script>
    <h2>1</h2><p id="imie"></p>
</body>
</html>

1 użytkowników online, w tym zalogowanych: 0, gości: 1