Language/Javascript

[JS, JavaScript] document.getElementById()를 이용해 값을 바꾸려했는데 반영이 안됨. (부제 : 생일 Dday 출력하기)

코찔이_suj 2021. 4. 28. 23:32
728x90

개요

포트폴리오에 생일까지 며칠남았는지 표현하고 싶어서 자바스크립트를 오랜만에 찾아보게 되었습니다.

 

본론

그리 큰 파일도 아니고, js파일을 따로 많이 사용할 것도 아니라서 이렇게 script 태그를 사용해서 생일 Dday를 출력하려고 했습니다.

 

<!DOCTYPE html>
<html lang="kr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>생일 출력하기</title>

    <script>
        var now = new Date();
        var Dday = new Date(now.getFullYear(), 11, 22);
        var gap = Dday - now;
        var result = Math.floor(gap/ (1000 * 60 * 60 * 24));
        let birthdayText = '1999.11.22 (올해 생일까지 '+ {result}+'일 전)'; 
        document.getElementById("BD") = birthdayText;
    </script>

</head>

<body>
	<h3>생년월일</h3>
    <p id="BD">1999.11.22</p><br>
</body>
</html>

javascript로 값을 넣을 때에는 document.getElementById("id명")을 사용해서 넣는다는 게 일단 생각나서 처음엔 위와 같이 코드를 작성하였습니다.

그런데 에러가 떡하니 뜨고 값이 변하지 않길래 서치를 했더니 innerHTML을 넣어줘야 반영이 된다는 결과가 나왔습니다. 그래서 document.getElementById("BD"= birthdayText; 대신 document.getElementById("BD").innerHTML = birthdayText; 을 했더니?

또다시 에러 등장... 

그러다 발견한 stackoverflow를 발견하게되었습니다...!

>>> stackoverflow.com/questions/2632137/why-is-document-getelementbyid-returning-null

 

 

Why is document.GetElementById returning null

I've been using document.GetElementById() successfully but from some time on I can't make it work again. look at the following Code:

 

스택오버 플로우 글 중에서 해당 방법을 사용했습니다.

생명의 은인...

 

마무리

이를 반영해서 입력했더니 다음과 같이 완성이 되었습니다!

 

- 코드

<html lang="kr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>생일 출력하기</title>

    <script>
        var now = new Date();
        var Dday = new Date(now.getFullYear(), 11, 22);
        var gap = Dday - now;
        var result = Math.floor(gap/ (1000 * 60 * 60 * 24));

        window.onload = function() {
            document.getElementById("BD").innerHTML = `<p>1999.11.22 (올해 생일까지 ${result} 일 전)</p>`; 
        }
    </script>


</head>

<body>
	<h3>생년월일</h3>
    <p id="BD">1999.11.22</p><br>
</body>
</html>

- 실행결과