Change variable globally inside setInterval()



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








-1















I'm trying to display how many seconds have passed with a setInterval function in JavaScript embedded in HTML. I tried the code below, however it only outputs 1, but it seems like the test function isn't executed more than once.
Any help would be much appreciated!



var n=1;
function test()
document.write(n);
n=n+1;

setInterval(test(), 1000);









share|improve this question
























  • setInterval(test, 1000) — by including the () you're calling the function and passing its result to setTimeout().

    – Pointy
    Nov 15 '18 at 14:00











  • You should not use document.write, why have courses not updated this.....

    – epascarello
    Nov 15 '18 at 14:05


















-1















I'm trying to display how many seconds have passed with a setInterval function in JavaScript embedded in HTML. I tried the code below, however it only outputs 1, but it seems like the test function isn't executed more than once.
Any help would be much appreciated!



var n=1;
function test()
document.write(n);
n=n+1;

setInterval(test(), 1000);









share|improve this question
























  • setInterval(test, 1000) — by including the () you're calling the function and passing its result to setTimeout().

    – Pointy
    Nov 15 '18 at 14:00











  • You should not use document.write, why have courses not updated this.....

    – epascarello
    Nov 15 '18 at 14:05














-1












-1








-1








I'm trying to display how many seconds have passed with a setInterval function in JavaScript embedded in HTML. I tried the code below, however it only outputs 1, but it seems like the test function isn't executed more than once.
Any help would be much appreciated!



var n=1;
function test()
document.write(n);
n=n+1;

setInterval(test(), 1000);









share|improve this question
















I'm trying to display how many seconds have passed with a setInterval function in JavaScript embedded in HTML. I tried the code below, however it only outputs 1, but it seems like the test function isn't executed more than once.
Any help would be much appreciated!



var n=1;
function test()
document.write(n);
n=n+1;

setInterval(test(), 1000);






javascript setinterval






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 15 '18 at 14:02









chazsolo

5,41011234




5,41011234










asked Nov 15 '18 at 13:58









WieselWiesel

62




62












  • setInterval(test, 1000) — by including the () you're calling the function and passing its result to setTimeout().

    – Pointy
    Nov 15 '18 at 14:00











  • You should not use document.write, why have courses not updated this.....

    – epascarello
    Nov 15 '18 at 14:05


















  • setInterval(test, 1000) — by including the () you're calling the function and passing its result to setTimeout().

    – Pointy
    Nov 15 '18 at 14:00











  • You should not use document.write, why have courses not updated this.....

    – epascarello
    Nov 15 '18 at 14:05

















setInterval(test, 1000) — by including the () you're calling the function and passing its result to setTimeout().

– Pointy
Nov 15 '18 at 14:00





setInterval(test, 1000) — by including the () you're calling the function and passing its result to setTimeout().

– Pointy
Nov 15 '18 at 14:00













You should not use document.write, why have courses not updated this.....

– epascarello
Nov 15 '18 at 14:05






You should not use document.write, why have courses not updated this.....

– epascarello
Nov 15 '18 at 14:05













5 Answers
5






active

oldest

votes


















1














Remove the parenthesis after function name. Simply specify the name of the function.






var n=1;
function test()
document.write(n);
n=n+1;

setInterval(test, 1000);








share|improve this answer






























    1

















    var n=1;

    function test()
    document.getElementById("counter").innerHTML = n;
    n+=1;


    setInterval(()=>
    test()
    , 1000);

    <div id="counter">0</div>








    share|improve this answer























    • You should consider adding an explanation of what you did and how it solves the problem.

      – chazsolo
      Nov 15 '18 at 14:06


















    0

















    var n=1;
    function test()
    document.write(n);
    n=n+1;

    setInterval(test, 1000);





    Remove the ()






    share|improve this answer






























      0














      You should remove parentheses of function in setInterval to calling target function.






      var n=1;
      function test()
      document.write(n);
      n=n+1;

      setInterval(test, 1000);





      Also you can write second number in special element instead of using write() to better working






      var n = 0;
      function test()
      document.getElementsByTagName("div")[0].innerHTML = n+=1;

      setInterval(test, 1000);

      <div>0</div>








      share|improve this answer






























        0














        This should also work!






        var n=1;
        function test()
        document.write(n);
        n=n+1;

        setInterval(() => test(), 1000);





        Edit: don't do this, it creates an unnecessary function!






        share|improve this answer

























        • This only creates an unnecessary new function.

          – Sebastian Speitel
          Nov 15 '18 at 14:04











        Your Answer






        StackExchange.ifUsing("editor", function ()
        StackExchange.using("externalEditor", function ()
        StackExchange.using("snippets", function ()
        StackExchange.snippets.init();
        );
        );
        , "code-snippets");

        StackExchange.ready(function()
        var channelOptions =
        tags: "".split(" "),
        id: "1"
        ;
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function()
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled)
        StackExchange.using("snippets", function()
        createEditor();
        );

        else
        createEditor();

        );

        function createEditor()
        StackExchange.prepareEditor(
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: true,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: 10,
        bindNavPrevention: true,
        postfix: "",
        imageUploader:
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        ,
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );













        draft saved

        draft discarded


















        StackExchange.ready(
        function ()
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53321099%2fchange-variable-globally-inside-setinterval%23new-answer', 'question_page');

        );

        Post as a guest















        Required, but never shown

























        5 Answers
        5






        active

        oldest

        votes








        5 Answers
        5






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        1














        Remove the parenthesis after function name. Simply specify the name of the function.






        var n=1;
        function test()
        document.write(n);
        n=n+1;

        setInterval(test, 1000);








        share|improve this answer



























          1














          Remove the parenthesis after function name. Simply specify the name of the function.






          var n=1;
          function test()
          document.write(n);
          n=n+1;

          setInterval(test, 1000);








          share|improve this answer

























            1












            1








            1







            Remove the parenthesis after function name. Simply specify the name of the function.






            var n=1;
            function test()
            document.write(n);
            n=n+1;

            setInterval(test, 1000);








            share|improve this answer













            Remove the parenthesis after function name. Simply specify the name of the function.






            var n=1;
            function test()
            document.write(n);
            n=n+1;

            setInterval(test, 1000);








            var n=1;
            function test()
            document.write(n);
            n=n+1;

            setInterval(test, 1000);





            var n=1;
            function test()
            document.write(n);
            n=n+1;

            setInterval(test, 1000);






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 15 '18 at 14:00









            MamunMamun

            30.7k71932




            30.7k71932























                1

















                var n=1;

                function test()
                document.getElementById("counter").innerHTML = n;
                n+=1;


                setInterval(()=>
                test()
                , 1000);

                <div id="counter">0</div>








                share|improve this answer























                • You should consider adding an explanation of what you did and how it solves the problem.

                  – chazsolo
                  Nov 15 '18 at 14:06















                1

















                var n=1;

                function test()
                document.getElementById("counter").innerHTML = n;
                n+=1;


                setInterval(()=>
                test()
                , 1000);

                <div id="counter">0</div>








                share|improve this answer























                • You should consider adding an explanation of what you did and how it solves the problem.

                  – chazsolo
                  Nov 15 '18 at 14:06













                1












                1








                1










                var n=1;

                function test()
                document.getElementById("counter").innerHTML = n;
                n+=1;


                setInterval(()=>
                test()
                , 1000);

                <div id="counter">0</div>








                share|improve this answer
















                var n=1;

                function test()
                document.getElementById("counter").innerHTML = n;
                n+=1;


                setInterval(()=>
                test()
                , 1000);

                <div id="counter">0</div>








                var n=1;

                function test()
                document.getElementById("counter").innerHTML = n;
                n+=1;


                setInterval(()=>
                test()
                , 1000);

                <div id="counter">0</div>





                var n=1;

                function test()
                document.getElementById("counter").innerHTML = n;
                n+=1;


                setInterval(()=>
                test()
                , 1000);

                <div id="counter">0</div>






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 15 '18 at 14:04









                suzansuzan

                1,3241520




                1,3241520












                • You should consider adding an explanation of what you did and how it solves the problem.

                  – chazsolo
                  Nov 15 '18 at 14:06

















                • You should consider adding an explanation of what you did and how it solves the problem.

                  – chazsolo
                  Nov 15 '18 at 14:06
















                You should consider adding an explanation of what you did and how it solves the problem.

                – chazsolo
                Nov 15 '18 at 14:06





                You should consider adding an explanation of what you did and how it solves the problem.

                – chazsolo
                Nov 15 '18 at 14:06











                0

















                var n=1;
                function test()
                document.write(n);
                n=n+1;

                setInterval(test, 1000);





                Remove the ()






                share|improve this answer



























                  0

















                  var n=1;
                  function test()
                  document.write(n);
                  n=n+1;

                  setInterval(test, 1000);





                  Remove the ()






                  share|improve this answer

























                    0












                    0








                    0










                    var n=1;
                    function test()
                    document.write(n);
                    n=n+1;

                    setInterval(test, 1000);





                    Remove the ()






                    share|improve this answer
















                    var n=1;
                    function test()
                    document.write(n);
                    n=n+1;

                    setInterval(test, 1000);





                    Remove the ()






                    var n=1;
                    function test()
                    document.write(n);
                    n=n+1;

                    setInterval(test, 1000);





                    var n=1;
                    function test()
                    document.write(n);
                    n=n+1;

                    setInterval(test, 1000);






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Nov 15 '18 at 14:01









                    ArthurArthur

                    112




                    112





















                        0














                        You should remove parentheses of function in setInterval to calling target function.






                        var n=1;
                        function test()
                        document.write(n);
                        n=n+1;

                        setInterval(test, 1000);





                        Also you can write second number in special element instead of using write() to better working






                        var n = 0;
                        function test()
                        document.getElementsByTagName("div")[0].innerHTML = n+=1;

                        setInterval(test, 1000);

                        <div>0</div>








                        share|improve this answer



























                          0














                          You should remove parentheses of function in setInterval to calling target function.






                          var n=1;
                          function test()
                          document.write(n);
                          n=n+1;

                          setInterval(test, 1000);





                          Also you can write second number in special element instead of using write() to better working






                          var n = 0;
                          function test()
                          document.getElementsByTagName("div")[0].innerHTML = n+=1;

                          setInterval(test, 1000);

                          <div>0</div>








                          share|improve this answer

























                            0












                            0








                            0







                            You should remove parentheses of function in setInterval to calling target function.






                            var n=1;
                            function test()
                            document.write(n);
                            n=n+1;

                            setInterval(test, 1000);





                            Also you can write second number in special element instead of using write() to better working






                            var n = 0;
                            function test()
                            document.getElementsByTagName("div")[0].innerHTML = n+=1;

                            setInterval(test, 1000);

                            <div>0</div>








                            share|improve this answer













                            You should remove parentheses of function in setInterval to calling target function.






                            var n=1;
                            function test()
                            document.write(n);
                            n=n+1;

                            setInterval(test, 1000);





                            Also you can write second number in special element instead of using write() to better working






                            var n = 0;
                            function test()
                            document.getElementsByTagName("div")[0].innerHTML = n+=1;

                            setInterval(test, 1000);

                            <div>0</div>








                            var n=1;
                            function test()
                            document.write(n);
                            n=n+1;

                            setInterval(test, 1000);





                            var n=1;
                            function test()
                            document.write(n);
                            n=n+1;

                            setInterval(test, 1000);





                            var n = 0;
                            function test()
                            document.getElementsByTagName("div")[0].innerHTML = n+=1;

                            setInterval(test, 1000);

                            <div>0</div>





                            var n = 0;
                            function test()
                            document.getElementsByTagName("div")[0].innerHTML = n+=1;

                            setInterval(test, 1000);

                            <div>0</div>






                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Nov 15 '18 at 14:04









                            MohammadMohammad

                            16.1k123766




                            16.1k123766





















                                0














                                This should also work!






                                var n=1;
                                function test()
                                document.write(n);
                                n=n+1;

                                setInterval(() => test(), 1000);





                                Edit: don't do this, it creates an unnecessary function!






                                share|improve this answer

























                                • This only creates an unnecessary new function.

                                  – Sebastian Speitel
                                  Nov 15 '18 at 14:04















                                0














                                This should also work!






                                var n=1;
                                function test()
                                document.write(n);
                                n=n+1;

                                setInterval(() => test(), 1000);





                                Edit: don't do this, it creates an unnecessary function!






                                share|improve this answer

























                                • This only creates an unnecessary new function.

                                  – Sebastian Speitel
                                  Nov 15 '18 at 14:04













                                0












                                0








                                0







                                This should also work!






                                var n=1;
                                function test()
                                document.write(n);
                                n=n+1;

                                setInterval(() => test(), 1000);





                                Edit: don't do this, it creates an unnecessary function!






                                share|improve this answer















                                This should also work!






                                var n=1;
                                function test()
                                document.write(n);
                                n=n+1;

                                setInterval(() => test(), 1000);





                                Edit: don't do this, it creates an unnecessary function!






                                var n=1;
                                function test()
                                document.write(n);
                                n=n+1;

                                setInterval(() => test(), 1000);





                                var n=1;
                                function test()
                                document.write(n);
                                n=n+1;

                                setInterval(() => test(), 1000);






                                share|improve this answer














                                share|improve this answer



                                share|improve this answer








                                edited Nov 15 '18 at 14:05

























                                answered Nov 15 '18 at 14:02









                                YoldrimYoldrim

                                286




                                286












                                • This only creates an unnecessary new function.

                                  – Sebastian Speitel
                                  Nov 15 '18 at 14:04

















                                • This only creates an unnecessary new function.

                                  – Sebastian Speitel
                                  Nov 15 '18 at 14:04
















                                This only creates an unnecessary new function.

                                – Sebastian Speitel
                                Nov 15 '18 at 14:04





                                This only creates an unnecessary new function.

                                – Sebastian Speitel
                                Nov 15 '18 at 14:04

















                                draft saved

                                draft discarded
















































                                Thanks for contributing an answer to Stack Overflow!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid


                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.

                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function ()
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53321099%2fchange-variable-globally-inside-setinterval%23new-answer', 'question_page');

                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown







                                Popular posts from this blog

                                How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

                                Syphilis

                                Darth Vader #20