메뉴 건너뛰기

에러가 난 코드

<!DOCTYPE html>

<html>

<head>

    <title>setinterval</title>

    <style>

        div {

            background: yellowgreen;

            width: 200px;

        }

    </style>

    <script>

        let state = true;

        function init() {

            var div = document.getElementById("div");

            div.addEventListener("click", click);

            var Clock = setInterval("get_time()", 1000);//<<에서 Clock을 var로 선언하여 전역변수화 시켰으나

        }

 

        function click() {

            state = !state;

            

            if (state == true) {

                Clock = setInterval("get_time()", 1000);

                div.style.color = "black";

 

            } else {

                div.style.color = "gray";

                clearInterval(Clock); //<<전역변수인 Clock을 읽어오지 못함

            }

 

        }

        function get_time() {

            let date = new Date();

            let text = date.toLocaleString();

            div.innerHTML = text;

        }

  

   </script>

</head>

<body onload="init()">

    <h3>div 태그에 시계 만들기</h3>

    <hr>

    <div id="div">  </div>

</body>

</html>

 

-----

1.전역변수로 선언한 변수를 다른 함수에서 읽어오지 못하는 점에 관한 의문

작동이 되는 코드

   <script>

        let state = true;

        let Clock = null;

        function init() {

            var div = document.getElementById("div");

            click();

            div.addEventListener("click", click);

 

        }

 

        function click() {

            if (state == true) {

                Clock = setInterval("get_time()", 1000);

                div.style.color = "black";

 

            } else {

                div.style.color = "gray";

                clearInterval(Clock);

            }

            state = !state;

        }

        function get_time() {

            let date = new Date();

            let text = date.toLocaleString();

            div.innerHTML = text;

        }

    </script>

 

 

?
  • ?
    관리자 2019.12.05 11:07
    function init() {
    var div = document.getElementById("div");

    에서 만든 div 변수는 init() 함수 외에서는 접근하지 못합니다. 아래와 같이 전역변수로 선언해야 합니다.
    var div;
    function init() {
    div = document.getElementById("div");
    ..
    }

    div 외에 여러 함수에 사용해야만 하는 변수들을 이렇게 선언해보세요.

QnA

공부하면서 궁금했던 것을 질문해보세요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 읽어주세요! 연습문제 및 실습문제 정답 공개에 관한 공지입니다. file 관리자 2017.06.20 18280
403 오픈챌린지 5장 ces 2024.04.19 20
402 스타일 시트 객체 2 한성이 2022.08.09 32
401 css3의 프로퍼티와 7장 객체의 프로퍼티 1 한성이 2022.08.07 38
400 따옴표를 4중 5중으로 사용하는 방법에 대해 여쭙고 싶습니다. 입문한 사람 2020.04.07 40
399 border style 질문 2 궁그미 2020.07.28 41
398 76페이지 1 ramoss 2020.05.13 44
397 target프로퍼티 질문(페이지 428쪽) 2 한성이 2022.08.14 47
396 SRC와 SRDOC의 차이를 여쭙고 싶습니다. 입문한 사람 2020.04.07 48
395 인터넷익스플로러 질문이요 1 file 021 2020.04.10 48
394 p.254 3번문제 질문드립니다. 2 열심히 공부하는 독자 2020.08.14 48
393 value 속성 1 열심히 공부하는 독자 2020.09.04 48
392 예제 2-22 2개의 인라인 프레임을 가진 웹 페이지(91p) 2 file 코딩어렵다 2023.04.12 54
391 94p 그림2-4 질문 2 file 그냥초보 2020.04.15 55
390 계산기 문제 변형 문의 file Mikael 2022.12.13 56
389 윈도우 브라우저와 윈도우 탭 2 tc0712 2021.11.22 57
388 4장 171쪽 2 chu 2022.04.04 57
387 <script>태그의 위치 1 열심히 공부하는 독자 2020.08.15 58
386 브라우저 크기 변경 1 열심히 공부하는 독자 2020.08.27 59
385 length 프로퍼티 2 열공이 2022.05.21 59
384 [개정판] p.357 sibling 에 대한 설명 및 그림 8-7 1 질문 2022.09.02 59
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 21 Next
/ 21
위로